导致系统资源无法正常释放,一般不推荐使用,除非其他办法都无效。
当使用此命令时,一定要通过ps -ef确认没有剩下任何僵尸进程。只能通过终止父进程来消除僵尸进程。如果僵尸进程被init收养,问题就比较严重了。杀死init进程意味着关闭系统。如果系统中有僵尸进程,并且其父进程是init,而且僵尸进程占用了大量的系统资源,那么就需要在某个时候重启机器以清除进程表了.
kill函数
发送信号的kill和raise函数
int kill(pid_t pid, int sig);
int raise(int sig);
kill()发送信号给指定进程,raise()发送信号给进程本身。对kill()的pid,有如下描述:
pid > 0 将信号发送给ID为pid的进程
pid == 0 将信号发送给与发送进程属于同个进程组的所有进程
pid < 0 将信号发送给进程组ID等于pid绝对值的所有进程
pid == -1 将信号发送给该进程有权限发送的系统里的所有进程
所有信号的发送都要先经过权限检查,如果进程没有相应发送的权限,kill()会出错返回,并把errno 设为EPERM。但也有一个例外,对SIGCONT,进程可以将它发送给当前会话的所有进程。
#include
#include
#include
#include
#include