Linux 后台运行程序有两种比较简单的方法,这里分别做介绍。这两个方法分别是 screen 和 nohup,都可以实现让程序在后台运行的效果。总体来说,screen 功能更强大一些,并且使用起来也更方便,所以比较推荐使用 screen,但是 nohup 偶尔用一下问题也不大,所以还是看自己喜好吧。一般来说,如果我们要装东西,推荐使用 screen,这样更容易后续重新进入安装界面,且不会意外掉线。如果想临时简单的后台运行一个程序,那么使用 nohup 也是比较方便的。
本文仅简单的介绍一下这两个程序的安装和使用方法,会用就够了,更深入的用法不会深究,因为一般也不会涉及什么更深入的用法。
nohup 的安装和使用
1、安装 nohup
一般来说 nohup 都是系统自带,如果没有,进行安装:
apt-get install -y nohup
CentOS 的话把 apt-get 换成 yum 即可.
2、使用 nohup
使用也很方便,比如想后台运行一个 python 程序 test.py,那么:
nohup python test.py &
即可。注意别漏了 & 这个符号。
查看所有后台任务:
jobs
返回到对应的任务:
fg %1 # 其中 1 是编号
至此就差不多了。
screen 的安装和使用
1、安装 screen
Ubuntu / Debian:
apt-get install -y screen
CentOS:
yum -y install screen
2、使用 screen
新建 screen:
screen -S test
查看所有 screen:
screen -ls
返回对应 screen:
screen -r test # 也可以输入对应的 ID
还是很简单的,基本的使用也就是这些命令。
两者简单对比
1、使用 nohup command & 方式时,如果 ssh 突然断开了,那么再登陆到系统的时候,执行 jobs 就不会发现刚才的 job 的编号了。但是 command 会继续执行,直到完成脚本的内容。
2、使用 screen 方式执行脚本,然后按键 Ctrl+a+d 暂时断开后,即使 ssh 会话断了,使用 screen -r 也是能恢复到之前的会话中的。当然脚本内容也会直到执行完成。
