Articles of 进程

信号/暂停死锁

我很难通过信号和共享内存来pipe理subprocess(我知道pipe道可能会更好)。 我有以下循环: * parent processing something, then signaling the children and going into pause, * children processing something, then signaling the parent and going into pause, * etc. etc. 问题是,在发信号通过父(通过kill)之后的某个时候,操作系统切换到父母而不让孩子暂停()。 当它恢复孩子(在家长调用暂停后)孩子然后暂停,我有一个死锁:(。 有什么build议么?

我怎样才能得到我的程序的内存消耗高峰?

我有一个小程序,就像grep或cat在运行时分配内存一样。 我想知道在整个运行过程中最多分配了多less内存。 我怎么能这样做?

如何判断Chef客户端是否安装在Linux上?

我需要一个编程方式(任何方式)来确定Chef客户端是否安装在Linux上。 我能想到的唯一方法是看看/etc/chef存在,但这可能不是傻瓜。 我也在考虑检查knife命令的输出,但是我对厨师客户端的理解是, knife不是客户端安装的必须部分。 换句话说,我相信客户端可以安装,而不是knife 。 思考?

我可以启动一个脚本,使其独立于Linux上的父进程吗?

有没有办法从另一个进程启动一个脚本,以便如果进程死亡/结束,脚本仍然继续? 请setuid做这个? 如果我要将所有者设置为root,然后启动脚本? 例如,如果我有一些PHP代码启动一个脚本,但httpd死亡或死亡,我认为这需要我的脚本。 有没有解决的办法? 具体来说,我在Fedora 10上使用Apache 2和PHP 5。

内存分配失败,即使有足够的内存

我正在使用Linux(正好是Ubuntu 13.04),目前我有一个问题:为什么内存分配将失败,即使有足够的内存? 我今天写了一个简单的testing应用程序,在运行这个testing应用程序时遇到了这个问题 以下是我用来testing的代码片段: #include <stdio.h> #include <unistd.h> #include <list> #include <vector> #include <strings.h> using namespace std; unsigned short calcrc(unsigned char *ptr, int count) { unsigned short crc; unsigned char i; //high cpu-consumption code //implements CRC algorithm: Cylic //Redundancy code } void* CreateChild(void* param){ vector<unsigned char*> MemoryVector; pid_t PID = fork(); if (PID == 0){ […]

确定在Linux上停滞的进程的原因

我试图确定在Linux上停滞的过程的原因。 这是一个电信应用程序,在相当重的负载下运行。 每个T1 T1跨度有一个单独的过程。 每隔一段时间,其中一个进程就会变得无法响应 – 在通常非常繁忙的进程日志中logging一个事件之前,最多可能需要50秒。 这可能是一些系统资源不足的原因。 显而易见的事情 – CPU使用率 – 看起来没问题。 哪个linux工具可能是最好的捕捉和分析这种事情,并尽可能不显眼,因为这是一个高负载的系统? 它似乎需要是stream程而不是系统导向。 也许正在监视/ proc / pid / XX? 在这里顶部似乎不太有用。

64位窗口 – 我需要使用IMAGE_NT_HEADERS64?

我试图读取Windows 64环境中的一些进程的PE头,因为我的代码只是读取IMAGE_NT_HEADERS结构的32位和64位可执行文件,我想知道:我需要写一些像 if executable is 64 bit use IMAGE_NT_HEADERS64 else use IMAGE_NT_HEADERS ? 我的代码似乎只使用IMAGE_NT_HEADERS 64和32位进程工作,我错过了什么?

Python:给出pid获取用户进程的开始时间

继续问题标题,假设我有2个正在进行的ftp传输,并且我想要select性地杀死(在使用taskkill的窗口中)较旧的。 parsingtasklist命令的输出后,我将得到pid。 我不知道如何基于开始时间来区分它们 – 当用户在过去发起它们时。 这可以在Python中完成。 我所知道的是,pid可以是随机的,即较新的过程可能具有比较旧的过程更小/更大的pid。 所以开始的时间必须被看到。 请帮忙

保持Y的X实例始终在运行,窗口

我怎样才能用批处理脚本确保我总是运行例如cmd.exe的X实例? 我search,发现如果X实例正在运行,这给了我X行。 tasklist /FI "IMAGENAME eq exe.exe" 2>NUL | find /I /N "exe.exe" 然后,如果已经停止运行,请执行START XXX X次START XXX X次…?

如何杀死在c + +的过程,只知道它的名字的一部分

前段时间我需要编写c ++代码来杀死一些进程。 在我的主程序中,我使用系统(“…”)在input上运行带有不同文件名string的大型CAE系统软件包。 CAE软件创build了许多进程,包含进程名string文件名 )。 一些CAE进程worktime > max_time ,比我需要closures他们: //filename contains part of CAE-process name string s="/bin/kill -9 `ps aux | grep "+filename+" | awk {'print $2'}`"; system(s.c_str()); 输出是: Usage: kill pid … Send SIGTERM to every process listed. kill signal pid … Send a signal to every process listed. kill -s signal pid … […]