您的位置:首页 > 其它

让进程的运行不受终端影响的几个方法

2013-02-27 11:09 204 查看
有时候会往集群山发送一个运行时间很长的作业,但是有可能因为用户注销的原因或者网络断开的原因导致运行的作业终止。这是因为,这些事件发生的时候,系统会收到HUP(hangup)信号,然后将用户的所有进程都终止掉。

为了保证作业可靠的运行,有三种简单的方法:一种使用setsid命令,另外一种是使用nohup,还有就是使用(&)

nohup使提交的进程忽略系统发送的HUP信号,用法就是在正常的命令前面加上nohup 就可以了。

还有一种方法是让进程或者作业在一个新的会话中进行,使用setsid就达到这个目的了。使用方法和nohup相同,也是在启动作业的命令前面加上setsid即可。这时启动的进程的父进程为init进程,因此即使用户注销或者网络中断,也不会给此进程发送HUP信号。

使用(&)的效果和setsid的效果相同,使用方法为( 启动作业的命令 &)。也将在一个新的会话中启动进程。父进程为init进程,不会收到用户注销或者网络中断的任何影响。
本文出自 “相信并热爱着” 博客,请务必保留此出处http://hipercomer.blog.51cto.com/4415661/895311
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: