nohup
nohup
最简单暴力,让程序使用在后台执行,就算关闭了当前的终端也执行(&是做不到的)。该命令可以在你退出帐户/关闭终端之后继续运行相应的进程。关闭中断后,在另一个终端jobs已经无法看到后台跑得程序了,此时利用ps
(进程查看命令)。
ps aux | grep "test.sh" #a:显示所有程序 u:以用户为主的格式来显示 x:显示所有程序,不以终端机来区分
|
setsid
nohup 通过忽略 HUP 信号来使我们的进程避免中途被中断,但如果我们换个角度思考,如果我们的进程不属于接受 HUP 信号的终端的子进程,那么自然也就不会受到 HUP 信号的影响了。setsid 就能帮助我们做到这一点.
jobs
查看当前有多少在后台运行的命令.jobs
-l选项可显示所有任务的PID
,jobs
的状态可以是running
, stopped
, Terminated
。但是如果任务被终止了(kill
),shell`
从当前的shell
环境已知的列表中删除任务的进程标识。参考:
Linux 技巧:让进程在后台可靠运行的几种方法
-----------------
但是linux系统一重启,相应的linux程序就不会再在后台运行。所以,nohup和setsid只是属于
暂时之举。