Articles of 进程

在Linux中获取有关进程的信息

可以根据/ proc / PID目录中的PID读取文件获取有关进程的信息。 有没有图书馆直接提供这些信息?

在Linux上使用C中的双pipe双向父子通信

我正在尝试在Linux上使用C使用2个pipe道创build父进程和subprocess之间的双向通信。 父母是我的程序,孩子只是一个随机程序(说“猫”)。 我尝试在父级使用read()来读取子输出,但它给了我errno 9,这是错误的文件描述符。 以下是我的代码 #include <unistd.h> #include <stdlib.h> #include <stdio.h> #include <string.h> #include <errno.h> #define Read 0 #define Write 1 #define ParentRead read_pipe[1] #define ParentWrite write_pipe[0] #define ChildRead write_pipe[1] #define ChildWrite read_pipe[0] int main() { int data_processed; /** Pipe for reading for subprocess */ int read_pipe[2]; /** Pipe for writing to subprocess */ int […]

根据variables地址存储variables(数据段或堆或BSS)的位置?

与存储静态variables(数据段或堆或BSS)在哪里有点类似? ,但不是一样的。 现在我得到另一个进程的variables的地址,如:0x10fb90,这个variables存储在哪里(数据段或堆或BSS),我可以从进程的PID和variables的地址获取位置? 我正在使用obj-c和c在osx上工作。

python线程内存使用率64位与32位

我有一个基本的Python程序,使大量的线程(2000年),处理一些东西,然后写出来。 我已经缩小了我的代码是类似于这个(与2k线程):url获取线程的例子: http : //www.ibm.com/developerworks/aix/library/au-threadingpython/ 除了在我的class级,我从字面上什么都不做(从队列中获取项目,然后调用任务完成)。 在这个缩小版本和我所做的版本中,内存使用情况都是一样的。 在32位python解释器中,我使用了大约105MB的虚拟内存。 在64位,我用了超过8演出。 我正在运行rhel 6.我还添加了:threading.stack_size(32768)来获取堆栈大小。 我假设python是抓住一些默认的内存限制保留,我只是不知道这是什么限制。 有任何想法吗? 谢谢!

不能在linux中创build僵尸进程

那么我有一个奇怪的问题。 我不能在我的项目中创build僵尸进程,但是我可以在其他文件中执行此操作。 有简单的说明: int main() { if(fork()==0) printf("Some instructions\n"); else { sleep(10); wait(0); } return 0; } 这个简单的代码创build一个僵尸进程10秒。 我正在检查,它确实存在。 但是,如果我将这段代码复制到我的程序(我自己的shell)中,那么像BUT僵尸进程之前执行的所有东西根本就不存在。 我不知道有什么区别。 这是相同的代码。 有更多的信息我应该知道吗? 有没有其他的方式来创build僵尸以简单的方式?

为什么“杀-15”有时失败?

我有一个在C开发的程序。这个程序包含2个子线程。 有时候,当我试图用kill -15 <pid of main thread>停止我的应用程序kill -15 <pid of main thread>应用程序不会退出。 而且我只能看到ps aux输出中的主线程的pid(子auxread的pid不显示在ps aux )。 并继续杀死剩下的pid, kill -15 <pid>不会导致这个过程的终止。 只有kill -9 <pid>才会导致进程终止。 这种行为在1000次尝试中发生3次。 操作系统是OpenWRT Linux 内核版本是2.6.30 Libs: libuClibc-0.9.30.1.so和libpthread-0.9.30.1.so 请不要认为这个主题与这个重复,因为我的程序不包含sigaction处理程序。

计算使用的总处理器时间

我可以知道服务器uptime运行了多长时间,但是有什么办法可以让所有进程的总处理器时间消耗在一起吗? 我可以通过从正常运行时间减去系统空闲进程时间在Windows桌面上执行此操作,但在Linux中是否有类似的方法?

获取(父)进程在Linux shell中执行命令

请指教,如何validation执行过程的程序? 例如 以下命令(ps -ef)将查看进程sendmail以防此进程正在运行 ps –ef | grep sendmail root 9558 9544 019:05? 00:00:00/usr/sbin/sendmail-FCronDaemon-i-odi-oem-oi-t 我想find的是执行二进制文件/ usr / sbin / sendmail的脚本 所以我的问题 – 哪些标志,我需要添加到语法“ps -ef”,以获得从ps -ef的全部细节,包括哪个程序运行的过程 可能吗 ? 示例和注释 如果/etc/rc3.d/sendmail运行二进制文件/ usr / sbin / sendmail 然后我希望看到命令ps -ef ……中的/etc/rc3.d/sendmail PATH。

Node.js(Mac OSX)的性能问题 – 进程

我希望在这里find一些帮助。 我们在testing环境中使用节点,mongodb,supertest,mocha和spawn。 我们试图改进我们的mochatestingenv来并行运行testing,因为我们的testing用例现在运行了近5分钟! (600箱) 我们正在产卵,例如4个进程并行运行testing。 这是非常成功的,但只是在Linux上。 在我的Mac上,testing仍然运行非常缓慢。 似乎不同的stream程并不是真正的并行运行。 testing时间: MacOSX的: – 并行运行9个testing:37s – 并行运行9个testing:41s Linux的: – 并行运行9个testing:16s – 并行运行9个testing:25s maxosx 2011年初: 10.9.2 16GB的内存 核心i7 2,2ghz 物理处理器:1 核心:4 线程:8 Linux的戴尔: Ubuntu的 8GB的内存 核心i5-2520M 2.5ghz 物理处理器:1 核心:2 线程:4 我的问题是: 有没有提高macosx过程性能的提示? (除了ulimit,launchctl(maxfiles)?) 为什么在linux上testing运行得更快? 谢谢,凯特

为什么组长不能在Linux中创build会话

为什么组长无法创build会话。 但是,除了组长可以创build会话吗? #include <stdio.h> #include <unistd.h> #include <stdlib.h> main() { int pid; int ppid=getppid(); if ( setsid() < 0) perror("ERROR"); if((pid=fork()) == 0) { printf("proces1=%d %d\n",getpid(),getpgrp()); int s=getpgrp(); //setpgid(pid,pid); if (setpgid(pid,0) < 0) perror("ERROR"); printf("group after proces=%d %d\n",getpid(),getpgrp()); exit(0); } wait(0); printf("group after proces=%d %d\n",getpid(),getpgrp()); } 请解释。