SIGKILL 和 SIGTERM
2011-08-04 14:29
417 查看
SIGKILL是不能屏蔽的,一般用SIGTERM。
另外-1表示的是相同uid的进程,但这样会有副作用。
0表示是相同进程组的进程,包括父进程自己。
可以在fork了所有的子进程之后,
用signal(SIGTERM,SIG_IGN)使父进程忽略SIGTERM信号。
int kill(pid_t pid, int sig);
1. pid>0时,pid是信号欲送往的进程的标识。
2. pid=0时,信号送往与调用kill()的进程属同一个使用组的进程
3. pid=-1时,信号将送往所有调用进程有权给其发送信号的进程,除了进程1(init)。
4. pid<-1时,信号将送往以-pid为组标识的进程。
pid = fork();
if (pid == -1)
{
fprintf(stderr, "Fork error MsgQueueDeal(1)!!!\n");
signal(SIGTERM, SIG_IGN);//忽略(SIG_IGN)程序结束(SIGTERM:terminate)信号
kill(0, SIGTERM);/*相同进程组的进程,包括父进程自己。*/
close(sock_listen);
exit(-1);
}
另外-1表示的是相同uid的进程,但这样会有副作用。
0表示是相同进程组的进程,包括父进程自己。
可以在fork了所有的子进程之后,
用signal(SIGTERM,SIG_IGN)使父进程忽略SIGTERM信号。
int kill(pid_t pid, int sig);
1. pid>0时,pid是信号欲送往的进程的标识。
2. pid=0时,信号送往与调用kill()的进程属同一个使用组的进程
3. pid=-1时,信号将送往所有调用进程有权给其发送信号的进程,除了进程1(init)。
4. pid<-1时,信号将送往以-pid为组标识的进程。
pid = fork();
if (pid == -1)
{
fprintf(stderr, "Fork error MsgQueueDeal(1)!!!\n");
signal(SIGTERM, SIG_IGN);//忽略(SIG_IGN)程序结束(SIGTERM:terminate)信号
kill(0, SIGTERM);/*相同进程组的进程,包括父进程自己。*/
close(sock_listen);
exit(-1);
}
相关文章推荐
- SIGTERM、SIGKILL、SIGINT和SIGQUIT的区别
- SIGTERM、SIGKILL、SIGINT和SIGQUIT的区别
- Linux信号SIGTERM、SIGKILL、SIGINT和SIGQUIT的区别
- xcode在调试带有webview的页面时出现SIGKill异常
- Linux中与进程终止相关的信号SIGTERM,SIGKILL,SIGINT
- sh: line 0: kill: SIGUSR1: invalid signal specification
- 内核出的sigkill信号
- linux学习---信号(signal,sigaction,kill,sigqueue,sigprocmask,sigpending,sigsuspend)
- 系统什么时候发送SIGKILL信号
- sigterm sigint sigkill 区别 .
- SIGUSER1 通过kill -10 pid进行触发的例子,并且该信号触发了与Accept函数。
- 信号 解释 / SIGSTERM SIGKILL 区别
- 内存不足引起的SIGKILL:一个缓冲区不断增长问题的定位与解决(解释SIGKILL原因)
- sigterm sigint sigkill 区别
- sigterm sigint sigkill 区别
- sh: line 0: kill: SIGUSR1: invalid signal specification
- babyos2(18)—— signal,kill,do_signal,sig_return
- Crash EXC_CRASH (SIGKILL)
- SIGKILL/SIGSTOP/SIGTSTP
- 信号SIG_TERM与信号SIG_KILL