nohup 与 & 的区别

nohup -- invoke a utility immune to hangups : 运行命令忽略挂起信号

& 是指后台运行;

nohup 的功能和& 之间的功能并不相同。其中,nohup 可以使得命令永远运行下去和用户终端没有关系。当我们断开ssh 连接的时候不会影响他的运行。而& 表示后台运行。当ssh 断开连接的时候(用户退出或挂起的时候),命令也自动退出。

当然我们可以把两者结合起来使用:

nohup command & 

来实现命令的后台运行并且和用户终端没有关系。

由 nohup 文档来看:

If the output file nohup.out cannot be created in the current directory, the nohup utility uses the directory named by HOME to create the file.

表示:nohup 命令执行后,会产生日志文件,把命令的执行中的消息报损到这个文件之中。如果当前文件不可写,那么会自动保存到执行这个命令的home 目录下面。如果是超级管理员root 对应的是/root 目录。

从上面对比我们发现:

1. & 可以使得命令 免疫 ctrl c 的 SIGINT 信号,不能是的命令对 SIGHUP 信号进行免疫。

2. nohup 可以使得命令对两个信号都可以进行免疫。

为了使得 & 达到相同的效果:

我们可以使用如下操作:

如果已经使用 & 命令进行 后台运行。

可以使用disown -h 让任务忽略sighup 信号;

同样不会因为控制台的终端而中断任务。

展示:

断开终端重新登录时:

这样当你在大量备份文件的时候,如果出现断网或者不得不下线的时候。我们可以使用。

ctrl z 挂起任务;disown-h 使得任务 忽略sighup 信号;使用 bg 命令使得命令后台运行。这样就可以放心得下线了。

参考链接:

1. https://blog.csdn.net/zhang_Red/article/details/52789691

2. https://blog.csdn.net/stpeace/article/details/76389073

 

转载于:https://www.cnblogs.com/xuyaowen/p/8798748.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值