当前位置: 技术问答>linux和unix
如何保证程序在后台执行???
来源: 互联网 发布时间:2015-01-17
本文导语: 我用telnet登录到过程sco unix服务器 ./mytest & 程序正常执行,,,,,,, 但一退出telnet,后台就停止运行该程序, 用ps查看,其进程确实不存在。。。。。。 请问: 怎样才能保证程序在后台执行。。。 谢谢了。。。...
我用telnet登录到过程sco unix服务器
./mytest &
程序正常执行,,,,,,,
但一退出telnet,后台就停止运行该程序,
用ps查看,其进程确实不存在。。。。。。
请问:
怎样才能保证程序在后台执行。。。
谢谢了。。。。。。。。。。。。。
./mytest &
程序正常执行,,,,,,,
但一退出telnet,后台就停止运行该程序,
用ps查看,其进程确实不存在。。。。。。
请问:
怎样才能保证程序在后台执行。。。
谢谢了。。。。。。。。。。。。。
|
nohup mytest 1>/dev/null 2>&1 &
|
当你退出时终端控制程序会给该终端启动的所有进程发送SIGHUP信号,该信号的默认动作是终止进程的执行。解决方法有2:
1:在你的进程中忽略SIGHUP信号:signal(SIGHUP,SIG_IGN);
2:让你的进程建立一个独立的会晤期,和控制终端不在同一个会晤期内,这样你的进程就收不到这个信号了。在你的进程建立后执行setsid(void);
1:在你的进程中忽略SIGHUP信号:signal(SIGHUP,SIG_IGN);
2:让你的进程建立一个独立的会晤期,和控制终端不在同一个会晤期内,这样你的进程就收不到这个信号了。在你的进程建立后执行setsid(void);