您的位置 首页 > 娱乐休闲

Linux中的jobs与nohup

在进入本文主题之前,我们先来简单学习下Linux的nohup命令。

nohup命令使用场景:如果你正在运行一个进程,而且你觉得在退出帐户时该进程还不会结束,那么可以使用nohup命令。该命令可以在你退出帐户/关闭终端之后继续运行相应的进程。nohup就是不挂起的意思( no hang up)。nohup命令常用于消息队列的消费者进程创建。命令使用案例:

图1

开启一个shell执行窗口,执行如上命令,其中,demo.php的代码是无限循环输出一个变量,代码如下:

图2

demo.php的代码很简单,主要是用于证明nohup是否能实现进程在后台执行。如果nohup能始进程在后台执行,那么,无疑,no里的输出数字会一直递增。事实证明,no里的数字确实会递增,而且使用jobs命令,我们确实也看到了nohup的执行任务。于是,我们可能就会认为,使用nohup命令,可以让程序在后台执行,只要机器不宕机。我们关闭刚才的窗口,好奇地新开一个窗口,在新的窗口下执行jobs命令,发现并没有看到刚才的后台执行任务(为了排除登陆账号对问题排查的干扰,新窗口的登陆账户和关闭的窗口是相同账户),难道关闭窗口后,后台执行的jobs就会被kill掉吗?以后需要让一个进程在后台运行,还不允许关窗口,不允许退出了?如果真是这样,那糟糕透顶。别急,我们通过查看刚才的no文件,发现窗口关闭后,文件内容还不停地有写入,且使用ps aux | grep demo.php | grep -v grep 命令,刚才的进程还在。所以,得出的结论是:

(1)jobs命令不能跨session(新开一个窗口,就是一个session);

(2)nohup命令可以实现后台运行脚本,与账户是否退出无关。

责任编辑: 鲁达

1.内容基于多重复合算法人工智能语言模型创作,旨在以深度学习研究为目的传播信息知识,内容观点与本网站无关,反馈举报请
2.仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证;
3.本站属于非营利性站点无毒无广告,请读者放心使用!

“如何查看nohup,如何查看nohup是否执行完,如何查看nohup进程,如何查看高考录取状态查询”边界阅读