ChinaUnix.net
相关文章推荐:

linux sighup

sighup会在以下3种情况下被发送给相应的进程: 1、终端关闭时,该信号被发送到session首进程 2、session首进程退出时,该信号被发送到该session中的前台进程组中的每一个进程 3、若父进程退出导致进程组成为孤儿进程组,且该进程组中有进程处于停止状态(收到SIGSTOP或SIGTSTP信号),该信号会被发送到该进程组中的每一个进程。 sighup信号会发给后台进程(非会话首进程)吗?如果后台进程是fork之后的子进程呢(父进程已exit...

by capable - C/C++ - 2009-01-19 15:00:29 阅读(1442) 回复(2)

相关讨论

看代码的时候不知道sighup信号有什么用 什么情况下会出现这个信号

by hong106525654 - C/C++ - 2014-09-25 17:18:55 阅读(28965) 回复(19)

unix中进程组织结构为 session 包含一个前台进程组及一个或多个后台进程组,一个进程组包含多个进程。 一个session可能会有一个session首进程,而一个session首进程可能会有一个控制终端。 一个进程组可能会有一个进程组首进程。进程组首进程的进程ID与该进程组ID相等。 这儿是可能会有,在一定情况之下是没有的。 与终端交互的进程是前台进程,否则便是后台进程 sighup会在以下3种情况下被发送给相应的进程: 1、终端关闭时,...

by haiyan_qi - Shell - 2011-06-13 21:39:20 阅读(10170) 回复(8)

apue上的一段代码, [code] static void sig_hup(int); static void pr_ids(char *); int main(void) { char c; pid_t pid; pr_ids("parent"); if ( (pid = fork()) < 0) err_sys("fork error"); else if (pid > 0) { /* parent */ sleep(5); /* sleep to let child stop itself */ exit(0); /* then parent exits */ } else { /* child */ pr_ids("child"); signal(sighup, sig_hup);//我就是搞不懂,这个S...

by xxldc - C/C++ - 2008-05-16 01:35:37 阅读(4965) 回复(7)

《UNIX环境高级编程》第十章说:“如果对话期首进程(session leader)终止,则也产生sighup。此信号被发送给该对话期前台进程组中的每一个进程。” 《UNIX网络编程》第一卷指出:把一个进程精灵化的过程是,先fork,父进程退出;之后在子进程中调用setsid创建一个新的对话期;第三步是“忽略sighup信号并再次fork”。问题在于书上对第三步的解释是:“再次fork前,我们必须忽略sighup,因为对话期首进程(也就是第一个子进程)结束...

by chg.s - C/C++ - 2008-06-14 22:29:09 阅读(3756) 回复(6)

... ... signal(sighup,sig_hup); ... ... static void sig_hup(int signo) { printf("sighup received, pid = %d\n",getpid()); return; } signal 那句就是终止的作用么,向各位请教! 为什么不能直接用sig_hup函数讷!

by shxliang - C/C++ - 2003-12-09 19:09:55 阅读(4925) 回复(6)

在IDS中检测程序是否存在攻击行为,如监测telnet,如发现有,则将其挂起 使用kill(pid,sighup) 不知道这样将进程挂起之后如何在一段时间后恢复?

by wangcui - C/C++ - 2008-06-25 15:34:37 阅读(6118) 回复(13)
by powercao - 其他UNIX - 2007-09-29 14:40:25 阅读(2497) 回复(1)

我现在创建了一个守护进程,并希望他收到某个信号时能够重新读取配置文件,但是在UNP上寻找解决方法时却比较迷惑,问题如下 ______________________ UNP中文版里面说: 守护进程运行时没有控制终端,所以它不会收到来自内核的sighup信号。因此很多守护进程将该信号作为管理员通知其配置文件已修改之用,守护进程收到sighup信号后应重新读入配置文件。 而守护进程在创建的时候不是必须设置对sighup信号进行忽略么,我又怎么通...

by piginthetree - C/C++ - 2010-05-26 21:54:58 阅读(4998) 回复(9)

我写了一个脚本,需要在收到特定信号的时候重新读取配置信息,我写的脚本如下: [code]# !/bin/bash #默认静态读取配置文件信息 msg=$(cat /tmp/a) #当收到sighup命令时,重新读取配置信息 trap "msg=$(cat /tmp/a)" sighup #测试 while : do sleep 3 echo MSG:$msg done [/code] 运行这个脚本后。然后我更新/tmp/a的内容,但是我给它发送sighup信号的时候,msg的输出还是老的内容?为什么? 大家有什么办法么...

by ch1v4n - Shell - 2008-10-08 18:40:11 阅读(1910) 回复(3)

int main(int argc, char* argv[]) { pid_t pid = -1; signal(sighup,sig_usr); if((pid=fork())<0) { perror("fork error"); return -1; } if(pid >0) { exit(0); } while(1) { pause(); } } 如上,当进程成为孤儿进程后,用户登出terminal,孤儿进程的就没有终端, 那是否意味着此刻他已成了一个守护进程!

by HunterForPig - C/C++ - 2007-09-24 23:48:12 阅读(1837) 回复(4)