nohup
命令用于打开程序或者命令,并指忽略所有中断数据信号SIGHUP
。SIGHUP
是如今控制主机关闭时发送到进度数据信号。
一般,如果你依据SSH运作命令时,倘若连接断开,或者退出SSH,SSH会话将终止在当前tty运作的进程。
如果你不想被某一程序流程被终止,能用nohup
命令。这将会忽略所有中断数据信号,命令程序流程会继续运作。
nohup
命令的语法形式是nohup COMMAND [ARGS]
。nohup
命令仅接受规范化的--help
和--version
选项,除此之外没有别的没有其他挑选。
nohup python3 -m http.server
命令将于前台接待运作python的HTTP网站服务器,然后把HTTP云主机标准输出重定向到nohup.out
文本文档。
nohup.out
文件创建在当前工作清单中。倘若运作nohup命令的消费者并没当前工作文件目录的读写权限,nohup.out
文本文档提及顾客的家中清单中。
这时候假如你注销或关闭智能终端,python的HTTP不易不会被终止。
后台程序
nohup
在前台接待运用并非非常有利,因为在命令开展之前,我们将不可以在目前tty互动交流。想让nohup
在后台程序,请在命令末尾再加上&
标识。
nohup python3 -m http.server &
命令将在后台程序python的HTTP网站服务器,而且在智能终端上打印作业ID和全过程ID。
当nohup工作中进入后台程序后,如果你想将nohup工作放进前台接待运作,您可以使用fg
命令并特殊工作中ID,让坚守在前台接待运作。
倘若因为各种原因要终止全过程,挑选kill
命令脚后跟全过程ID,例如命令kill -9 25132
。
输出重定向
默认情况下,nohup
能把所有标准输出重定向到nohup.out
文本文档。倘若要将命令标准输出重定向到资料,能用shell的自动跳转。
nohup python3 -m http.server > http.out 2>&1 &
命令将python的HTTP服务器标准输出和标准有误跳转文本文档http.out
。
nohup python3 -m http.server > http.out 2> httperr.out &
命令将python的HTTP服务器标准输出重定向到文本文档http.out
。标准有误跳转文本文档httperr.out
。
nohup python3 -m http.server > /dev/null 2>&1 &
命令标准输出与标准有误也不会提到文本文档。
/dev/null或者称空机械设备。在类Unix系统中是一个独特设备文件,它丢弃一切加载在里面的信息内容,但报告加载操作成功,加载它通常会立刻得到一个EOF。
在程序员行语,尤其是Unix行语中,/dev/null
称之为比特犬桶或者超级黑洞。
到这里,您应该更好的了解如何使用该nohup
命令来防止在撤消或退出智能终端时终止命令
