このトリックif (fork()) exit(0);
を使用して、現在のプロセスのpidを変更できることはわかっています。したがって、次のプログラムではpidが非常に速く変化します。このようなプロセスを強制終了するにはどうすればよいですか?フォークする前にkillall procname
実行できるようになるまで多くを実行するよりも良い方法はありますか?kill()
私はそれが「プロセス」ではないことを知っていますが、それぞれ数マイクロ秒で実行される多くのプロセスです。
#include <unistd.h>
#include <stdlib.h>
#include <stdio.h>
int main()
{
pid_t self = getpid();
while (1)
{
if (fork()) exit(0);
if (self + 10000 < getpid()) break; // Just to kill it after some time
usleep(1000);
}
return 0;
}
また、プロセスを一覧表示する唯一の方法はps -A | grep procname
、出力が表示されるまで数回実行することでした。プロセスが常にリストされていないのはなぜですか?