SSH连接服务器后,由于本人租用的服务器一直比较经济(呵呵,低配廉价),SSH终端中断是常有的事情,还有的时候服务器安装依赖包down个没完,SSH终端中断后程序能一直保持运行状态。
需要用到的命令nohup和&这两个指令。
nohup作为一条指令的开头,表示这条指令不会被HUP信号中断。当你的SSH断开时,服务器的程序会接到HUP信号,而nohup会忽略这个信号。
&作为一条指令的结尾,表示这条指令不会被INT信号中断。有时我们会用ctrl+c来终止一条指令,这个时候就是发送了INT信号。
1.nohup
用途:不挂断地运行命令。
语法:nohup Command [ Arg … ] [ & ]
无论是否将 nohup 命令的输出重定向到终端,输出都将附加到当前目录的 nohup.out 文件中。
如果当前目录的 nohup.out 文件不可写,输出重定向到 $HOME/nohup.out 文件中。
如果没有文件能创建或打开以用于追加,那么 Command 参数指定的命令不可调用。
退出状态:该命令返回下列出口值:
126 可以查找但不能调用 Command 参数指定的命令。
127 nohup 命令发生错误或不能查找由 Command 参数指定的命令。
否则,nohup 命令的退出状态是 Command 参数指定命令的退出状态。
2.&
用途:在后台运行
一般两个一起用
nohup command &