打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
精灵进程到底要不要屏蔽信号
精灵进程到底要不要屏蔽信号编写精灵进程,apue上没有提到要处理信号,而网上有些教程说要屏蔽很多信号。
到底需要屏蔽这些信号吗?
下面是在网上看到的例子

void main(int argc, char ** argv){
time_t now;
int childpid, fd, fdtablesize;
int error, in, out;


signal(SIGTTOU,SIG_IGN);
signal(SIGTTIN,SIG_IGN);
signal(SIGTSTP,SIG_IGN);
signal(SIGHUP,SIG_IGN);


if( fork()!=0 ) exit(1);
if( setsid()<0 ) exit(1);


if( fork()!=0 ) exit(1);
if( chdir("/tmp")==-1)exit(1);


for( fd=0, fdtablesize=getdtablesize(); fd<fdtablesize;fd++) close(fd);

umask(0);
signal(SIGCHLD,SIG_IGN);

syslog(LOG_USER|LOG_INFO,"守护进程测试http://www.3wanmei.com!\n");
while(1){
time(&now);
syslog(LOG_USER|LOG_INFO,"当前时间:\t%s\t\t\n",ctime(&n

请教关于拷贝构造函数的一个问题

ow));
sleep(6);
}什么是精灵进程啊楼主是指后台守护进程吧。
有些信号是应该忽略的,我在Linux下忽略的信号是这些:
signal(SIGINT, SIG_IGN); // 中断键被按下
signal(SIGQUIT, SIG_IGN); // 停止键被按下
signal(SIGPIPE, SIG_IGN); //客户端没有按正常过程断开 (Socket程序必要)
//signal(SIGTERM, TerminateApplication); //软件Kill,如果不想随便被kill,也可加此信号你想处理就处理,想忽略就忽略。
完全根据需要而定。上面那些信号都是和终端有关的信号,一般情况下都是由终端驱动程序发给当前程序的,既然已经没有控制终端了,所以说除了用户主动发送,再不会收到的信号不过是IPC的一种,看进程需求,这和是不是后台守护进程(“精灵进程”太别扭了)没关系。
话说'coreutils'中也会屏蔽一些信号的倒,这才看见是06年的帖子,不要怪我顶起,我被楼上迷惑了:shutup:要的~在网络程序中还是要屏蔽很多信号 比如 管道错误
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
编写Linux/Unix守护进程 (比较全)
daemon 进程为什么要fork两次
system函数返回值问题(system的实现)—signal(SIGCHLD,SIG
Linux进程间软中断通信
守候进程编程要点
fork两次如何避免僵尸进程收藏
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服