Linux服务器SSH挂断后继续后台运行命令

当我们断开SSH连接时,运行的命令也会终止。如何才能在断开SSH客户端后,让命令在后台自动运行呢?

解决方法:
1.nohup命令
功能:不挂断地运行命令,忽略HUP信号。
语法:nohup command &
中间红色command是需要运行的命令
退出时输入命令:exit
则能保证命令在后台继续运行!

举例:
1. sh test.sh &  
将sh test.sh任务放到后台 ,即使关闭xshell退出当前session依然继续运行,但标准输出和标准错误信息会丢失(缺少的日志的输出)
将sh test.sh任务放到后台 ,关闭xshell,对应的任务也跟着停止。
2. nohup sh test.sh  
将sh test.sh任务放到后台,关闭标准输入,终端不再能够接收任何输入(标准输入),重定向标准输出和标准错误到当前目录下的nohup.out文件,即使关闭xshell退出当前session依然继续运行。
3. nohup sh test.sh  & 
将sh test.sh任务放到后台,但是依然可以使用标准输入,终端能够接收任何输入,重定向标准输出和标准错误到当前目录下的nohup.out文件,即使关闭xshell退出当前session依然继续运行。

注意:退出时切记输入命令:exit

4、nohup 命令 参数 >/dev/null 2>&1 &
我们并不需要linux来记录日志,而且时间长了nohup.out文件会变的非常大,所以我们把linux中的日志全部丢到/dev/null中,相当于放入垃圾桶。>/dev/null是将1放进黑洞, 2>&1是将2放进1,最终都进入黑洞。

发表评论