欢迎光临
我们一直在努力

Linux命令之后台运行-nohup &

Linux/Unix下,通常只有守护进程可在脱离终端的情况下能继续执行,而普通进程在关闭终端时会因收到SIGHUP信号(挂起信号)而退出。当终端退出后,由该终端启动的后台程序自动退出。

若想命令在后台运行,则可用 & 指定命令在后台运行;

若想终端退出后程序不停止运行,则可用nohup命令启动后台程序。

nohup(=no hang up),使命令忽略SIGHUP信号;

[语法] nohup Command [ Arg … ] [&]

[命令输出说明]

Command 的输出如果没有被重定向,则无论是标准输出(stdout),还是标准错误(stderr),均重定向到nohup.out文件;nohup.out文件缺省写在当前目录下,如果在该目录下无写权限,则试图写到$HOME/nohup.out中,如果仍然失败,整个命令执行失败;

Command的输出如果重定向,则写入指定的重定向文件中;

[退出状态]

126 能查找但不能调用 Command 命令;

127 nohup 命令发生错误或找不到 Command 命令;

否则为 Command 命令的退出状态;

nohup与&的区别:

nohup只是让命令忽略SIGHUP命令而已;

&则让命令在后台运行;

至于该命令是否能在脱离终端后继续执行则要看进程是否是守护进程,如果不是,则需要nohup来帮忙;

———以下为引用内容

他是在当shell中提示了nohup成功后还需要按终端上键盘任意键退回到shell输入命令窗口,然后通过在shell中输入exit来退出终端;而我是每次在nohup执行成功后直接点关闭程序按钮关闭终端.。所以这时候会断掉该命令所对应的session,导致nohup对应的进程被通知需要一起shutdown。

这个细节有人和我一样没注意到,所以在这儿记录一下了。

本文从互联网转载,来源地址:www.downzz.com/shell/17995.html,原作者保留一切权利,若侵权或引用不当,请联系九八云(cmy.cn)删除。【九八云,优质云服务器提供商】

赞(0)
【声明】:本博客不参与任何交易,也非中介,仅记录个人感兴趣的主机测评结果和优惠活动,内容均不作直接、间接、法定、约定的保证。访问本博客请务必遵守有关互联网的相关法律、规定与规则。一旦您访问本博客,即表示您已经知晓并接受了此声明通告。