Linux中nohup和&的用法和区别
一、& 的使用
&
:后台运行,但当用户退出(挂起)的时候,命令自动也跟着退出& 对 SIGINT 信号免疫
:当你在执行 ./test.sh & 的时候, 即使你用ctrl c, 该脚本进程是不会停止的。当你直接关掉shell命令窗口后, 那么该脚本进程也会随之消失。
二、nohup 的使用
nohup
:全称是 no hang up 不挂断的运行nohup(no hang up)对 SIGHUP 信号免疫
:所以当运行nohup ./test.sh 的时候, 关闭shel命令窗口l, 那么该脚本进程还是存在的。如果你直接在shell中用ctrl c, 那么, 这个脚本进程也会随之消失。
需要注意的是 nohup 并没有后台运行的功能(&
才是后台运行),用nohup运行命令可以使命令永久的执行下去,和用户终端没有关系,例如我们断开SSH连接都不会影响他的运行
三、常用方法
如果想让进程在后台不挂断的运行,我们常用的方式是将 nohup 和 & 结合起来使用
nohup ./test.sh & > /var/log/test.log &