nohup和&作用详解

Posted Xdong、

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nohup和&作用详解相关的知识,希望对你有一定的参考价值。


一、nohup和&用途

1.nohup用途

用途:不挂断地运行命令。
语法:nohup Command [ Arg … ] [ & ]
  无论是否将 nohup 命令的输出重定向到终端,输出都将附加到当前目录的 nohup.out 文件中。
  如果当前目录的 nohup.out 文件不可写,输出重定向到 $HOME/nohup.out 文件中。
  如果没有文件能创建或打开以用于追加,那么 Command 参数指定的命令不可调用。
退出状态:该命令返回下列出口值:   
  126 可以查找但不能调用 Command 参数指定的命令。   
  127 nohup 命令发生错误或不能查找由 Command 参数指定的命令。   
  否则,nohup 命令的退出状态是 Command 参数指定命令的退出状态。

2.&用途

用途:在后台运行


二、nohup和&使用差异

使用&后台运行程序:结果会输出到终端

  • 使用Ctrl + C发送SIGINT信号,程序免疫
  • 关闭session发送SIGHUP信号,程序关闭

使用nohup运行程序:结果默认会输出到nohup.out

  • 使用Ctrl + C发送SIGINT信号,程序关闭
  • 关闭session发送SIGHUP信号,程序免疫

平日线上使用nohup和&配合来启动程序:

  • 同时免疫SIGINT和SIGHUP信号

三、nohup重定向日志文件

nohup命令还可以将该作业所有输出都被重定向到一个文件中。
例如:
nohup java -jar zipkin.jar > zipkin.log 2>&1 &

数字基本含义

  • /dev/null 表示空设备文件
  • 0 表示stdin标准输入
  • 1 表示stdout标准输出
  • 2 表示stderr标准错误

样例说明

  • > file 表示将标准输出输出到file中,也就相当于 1>file
  • 2> error 表示将错误输出到error文件中
  • 2>&1 也就表示将错误重定向到标准输出上
  • 2>&1 >file :错误输出到终端,标准输出重定向到文件file,等于 > file 2>&1(标准输出重定向到文件,错误重定向到标准输出)。

结尾

  • 感谢大家的耐心阅读,如有建议请私信或评论留言。
  • 如有收获,劳烦支持,关注、点赞、评论、收藏均可,博主会经常更新,与大家共同进步

以上是关于nohup和&作用详解的主要内容,如果未能解决你的问题,请参考以下文章

nohup和&后台运行,进程查看及终止 详解

nohup 详解

nohup 详解

nohup 详解

nohup 详解

nohup 详解