加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

nohup和&的区别

发布时间:2020-12-15 18:18:22 所属栏目:安全 来源:网络整理
导读:? 是指在后台运行,但当用户推出(挂起)的时候,命令自动也跟着退出 那么,我们可以巧妙的吧他们结合起来用就是 nohup COMMAND 这样就能使命令永久的在后台执行 例如: 1. sh test.sh ? 将sh test.sh任务放到后台 ,即使关闭xshell退出当前session依然继续运

?

&是指在后台运行,但当用户推出(挂起)的时候,命令自动也跟着退出


那么,我们可以巧妙的吧他们结合起来用就是
nohup COMMAND &
这样就能使命令永久的在后台执行
例如:

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

?

?

?

?

?

使用&后台运行程序:

  • 结果会输出到终端

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

  • 关闭session发送SIGHUP信号,程序关闭

?

使用nohup运行程序:

  • 结果默认会输出到nohup.out

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

  • 关闭session发送SIGHUP信号,程序免疫

?

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

  • 同时免疫SIGINT和SIGHUP信号

?

同时,还有一个最佳实践:

  • 不要将信息输出到终端标准输出,标准错误输出,而要用日志组件将信息记录到日志里

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读