Articles of 进程

改变一个进程的父母

是否有可能改变一个stream程父母? 例如:父母A有孩子B我可以让父母的B是没有杀死A的初始程序?

当操作系统杀死你的进程时返回代码

我想testing如果使用多进程,我可以在32位操作系统上使用超过4GB的内存(我的是:1GB内存的Ubuntu)。 所以我写了一个malloc稍小于1GB的小程序,并对该数组执行一些操作,并运行该程序的5个实例。 事情是,我怀疑操作系统杀死了其中的4个,只有一个幸存下来,并显示它是“PID:我已经完成”)。 (我已经尝试了小数组,并得到5印刷,当我看着与TOP运行的进程,我只看到一个实例..) 奇怪的是这个 – 我收到了所有实例的返回代码0(成功?),包括据说被OS 我没有得到任何按摩说明进程被杀害。 这个返回代码是否正常? (如果是这样,这减less了我对'返回代码'的信任…) 谢谢。 编辑:一些答案build议在小程序可能的错误,所以在这里。 分支和保存返回码的较大的程序是较大的,我在这里有麻烦,但我认为(并希望)没有问题。 我也注意到,如果不是用我的分叉程序来运行它,我使用'.a.out&./a.out&./a.out&./a.out&'来运行terminal。 ./a.out是附带的小程序的二进制文件)我看到一些“Killed”消息。 #include <stdio.h> #include <stdlib.h> #include <sys/types.h> #include <unistd.h> #define SMALL_SIZE 10000 #define BIG_SIZE 1000000000 #define SIZE BIG_SIZE #define REAPETS 1 int main() { pid_t my_pid = getpid(); char * x = malloc(SIZE*sizeof(char)); if (x == NULL) { printf("Malloc failed!"); return(EXIT_FAILURE); […]

更改进程名称而不更改Linux中的argv

我需要用C语言修改我的程序的进程名称。 我确切地说,这不是我想改变的线程的名称。 我想改变我的程序名称,但唯一的解决scheme是修改argv[0]的值。 我还发现了prctl(PR_SET_NAME, "newname")另一个解决scheme,但是此解决scheme不起作用。

如何在C中的Linux中获得一个进程的PID

我需要杀死一个使用kill API的进程。 为此,我需要进程的进程ID。 我试图得到它使用: ret = system("pidof -s raj-srv"); 但它没有返回正确的值。 我不想杀死使用这个过程: ret = system("pkill raj"); 有没有可以用来获取进程ID的API?

如何确定Linux中的进程内存限制?

我一直在search互联网,找出一个java进程可以在Linux(红帽)机器上占用多less内存。 (我不是在说堆,而是由java 进程占用的全部内存量) 我没有权限在该机器上执行任何操作。 所以我不能简单地执行一个消耗内存的程序,直到内存不足的状态。 但是,我有权限检查configuration文件等(例如:我试图执行cat / proc / meminfo,但我不明白,它的结果似乎没有代表我想知道的参数关于)。 我已经在一个单独的红帽机器上尝试了一个java程序 – 在这个机器上我有执行程序的权限 – 我能够看到java程序长到3GB左右。 有什么方法可以找出一个进程可以得到多less内存?

在Linux中微秒准确(或更好)的进程时序

我需要一个非常准确的方法来计算部分程序。 我可以使用这个普通的高分辨率时钟,但是这将返回wallclock时间,这不是我所需要的:我需要花费的时间只运行我的进程。 我清楚地记得看到一个Linux内核补丁,可以让我的stream程时间精确到毫微秒,除了我忘记了书签,我忘了补丁的名字以及:(。 我记得它是如何工作的, 在每个上下文切换时,它将读取高分辨率时钟的值,并将最后两个值的增量添加到正在运行的进程的处理时间。 这会生成一个高分辨率的过程实际处理时间的准确视图。 正常的处理时间是使用常规时钟保持的,这是我相信毫秒精度(1000Hz),这对于我的目的来说太大了。 有谁知道我在说什么内核补丁? 我还记得它就像是一个字母之前或之后的字母 – 像“rtimer”之类的东西,但我不记得确切的。 (其他build议也欢迎) Markobuild议的完全公平的调度程序并不是我正在寻找的,但它看起来很有希望。 我遇到的问题是,我可以用来获取处理时间的调用仍然没有返回足够精细的值。 times()返回值21,22,以毫秒为单位。 clock()返回值21000,2200,相同的粒度。 getrusage()返回值如210002,22001(还有些),他们看起来有更好的准确性,但值看起来显着相同。 所以现在我可能遇到的问题是内核有我需要的信息,我只是不知道将返回它的系统调用。

如何检索python中的进程开始时间(或正常运行时间)

如何检索在Linux中的Python的过程开始时间(或正常运行时间)? 我只知道,我可以调用“ps -p my_process_id -f”然后parsing输出。 但这并不酷。

Linux脚本来检查进程是否正在运行并对结果进行操作

我有一个进程,经常失败,有时会开始重复的情况下.. 当我运行: ps x |grep -v grep |grep -c "processname"我将得到: 2这是正常的,因为进程运行一个恢复进程。 如果我得到0我将要开始这个过程,如果我得到: 4我将要停止并重新启动过程 我需要的是一种采取ps x |grep -v grep |grep -c "processname" 然后设置一个简单的3选项function ps x |grep -v grep |grep -c "processname" if answer = 0 (start process & write NOK & Time to log /var/processlog/check) if answer = 2 (Do nothing & write OK & time […]

Linux进程状态

在Linux中,当需要从磁盘读取块时,进程状态会发生什么变化? 被封锁了吗? 如果是这样,另一个进程如何select执行?

关于过程的PID

我有一个有点愚蠢的问题,如果我有一系列创build的进程…这些不一定是某种inheritance,进程的PID必须是数字连续或随机pid?