免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2282 | 回复: 6
打印 上一主题 下一主题

关于unix signal [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-04-06 17:33 |只看该作者 |倒序浏览
我想弄一个程序,希望能够做到关闭程序运行的终端后,该程序不回退出,仍在后台运行。

写了一个小的测试程序,程序设置信号SIGHUP的行为为SIGIGN。然后运行一个死循环每两秒钟print一下。运行后关闭终端,,在其它终端用ps命令查看测试程序仍然在干活。

但是把关闭signal的几个语句放在我真实的程序前,关闭终端,程序就跟着退出了。


怎么搞的为什么?谢谢

论坛徽章:
0
2 [报告]
发表于 2007-04-08 10:53 |只看该作者
有没有大侠知道怎么能让运行程序的终端关闭后,程序继续运行

论坛徽章:
0
3 [报告]
发表于 2007-04-08 11:14 |只看该作者
在网上搜 nohup、精灵进程。

论坛徽章:
0
4 [报告]
发表于 2007-04-08 11:23 |只看该作者
man 3 daemon

论坛徽章:
0
5 [报告]
发表于 2007-04-08 11:32 |只看该作者
使用nohup。。。
nohup 程序名 &
这样子运行。

论坛徽章:
0
6 [报告]
发表于 2007-04-08 14:44 |只看该作者
daemon我知道, nohup的原理也是把要运行的程序的标准输入/输出重定向(到null/nohup.out)。
而我希望的是, 程序有输出到终端,只是如果终端死掉了,程序仍然运行(考虑一个一般不能被中断的程序,通过ssh运行,如果网络断了,程序仍然工作着)

论坛徽章:
0
7 [报告]
发表于 2007-04-10 06:15 |只看该作者
#define INIT_DAEMON \
{ \
        if(fork() > 0) exit(0); \
        setsid(); \
        if(fork() > 0) exit(0); \
}

int main(int argc , char *argv[])
{
    INIT_DAEMON;
     return 0;
}
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP