在Linux系统中,通常我们在执行一些运行时间比较长的任务时,必须等待执行完毕才能断开SSH连接或关闭客户端软件,否则可能会导致执行中断。本文介绍几种保障程序在用户退出登录后持续运行的方法。
nohup可以使后面的命令不会响应挂断(SIGHUP)信号。也就是说,通过远程登录执行nohup命令后,即使退出登录后,程序还是会正常执行。通常情况下,nohup命令最后会跟上&字符,表示将这个命令放至后台执行,这样才能真正做到将这个命令放至后台持续的执行。具体示例如下所示。
提示:nohup通常用于执行无干预的自动化程序或脚本,无法完成带有交互的操作。
bash hello.sh系统显示类似如下。
nohup bash hello.sh &系统显示类似如下。
tail -f nohup.out
nohup bash hello.sh >hello.log &
kill -TRM [$PID]
注:[$PID]为之前nohup命令输出的值。
Linux系统默认没有screen工具,需要先进行安装。
yum install screen
sudo apt-get install screen
screen -S [$Name]
注:[$Name]用来标注screen窗口用途。
screen -ls系统显示类似如下。
screen -r -d