Linux任务后台运行的方法

linux在后台运行程序
当我们在终端或控制台工作时,可能不希望由于运行一个作业而占住了屏幕,因为可能还有更重要的事情要做,比如阅读电子邮件。对于密集访问磁盘的进程,我们更希望它能够在每天的非负荷高峰时间段运行(例如凌晨)。为了使这些进程能够在后台运行,也就是说不在终端屏幕上运行,有几种选择方法可供使用。
&或者nohup
&的意思是在后台运行, 什么意思呢? 意思是说, 当你在执行 ./a.out & 的时候, 即使你用ctrl+c, 那么a.out照样运行(因为对SIGINT信号免疫)。 但是要注意, 如果你直接关掉shell后, 那么, a.out进程同样消失。 可见, &的后台并不硬(因为对SIGHUP信号不免疫)。

nohup的意思是忽略SIGHUP信号, 所以当运行nohup ./a.out的时候, 关闭shell, 那么a.out进程还是存在的(对SIGHUP信号免疫)。 但是, 要注意, 如果你直接在shell中用Ctrl C, 那么, a.out进程也是会消失的(因为对SIGINT信号不免疫)
要让进程真正不受shell中Ctrl+c和shell关闭的影响, 那该怎么办呢? 那就用nohua ./a.out &吧, 两全其美
https://blog.csdn.net/stpeace/article/details/76389073
https://www.ibm.com/developerworks/cn/linux/l-cn-nohup/

posted @ 2018-09-17 17:52  kaixinmao1987  阅读(878)  评论(0编辑  收藏  举报