文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Linux 下nohup 和 &有什么联系呢?

2023-06-05 22:34

关注

背景
  一直没搞清楚 nohup 与 & 的区别, 看着公司里遗留的shell, 也就稀里糊涂地用着… 这是很糟糕的态度
  结论放前面
  &
  使进程在后台运行, 默认输出到标准输出(即当前屏幕), 除非重定向输出.
  此时忽略 SIGINT 信号.
  若关闭会话, 则进程会结束
  nohup
  进程仍旧在前台跑, 默认输出到 nohup.out .
  此时进程忽略 SIGHUP 信号, 关闭会话不影响进程.
  Ctrl+c会使进程中断
  nohup + &
  进程在后台跑, 忽略 SIGINT, SIGHUP 信号.
  测试
  repeat=${1:-20}
  echo 循环次数 $repeat
  counter=0
  while [ $counter -lt repeat]  do  echo第repeat ]  do  echo 第repeat]  do  echo第{counter}次循环
  let “counter ++”
  sleep 1
  done
  echo 结束循环
  直接运行
  [root@linuxidc tmp]# sh test.sh
  循环次数 20
  第0次循环
  第1次循环
  第2次循环
  ^C
  此时不论是直接 Ctrl+c 或 关闭当前ssh连接, 都会导致进程停止
  [root@linuxidc tmp]# sh test.sh > test.out
  ^C
  此时进程仍在前端跑, 查看 test.out 文件会发现在输出, 此时不论是直接 Ctrl+C 或 关闭当前ssh连接, 都会导致进程停止
  单独使用 &
  [root@linuxidc tmp]# sh test.sh &
  [1] 111418
  [root@linuxidc tmp]# 循环次数 20
  第0次循环
  第1次循环
  第2次循环
  ^C
  [root@linuxidc tmp]# 第3次循环
  第4次循环
  第5次循环
  ^C
  [root@linuxidc tmp]# 第6次循环
  第7次循环
  第8次循环
  第9次循环
  第10次循环
  第11次循环
  此时进程在后台跑, 同时默认会输出到屏幕上.
  此时 Ctrl+c 无效, 即进程忽略了 SIGINT 信号.
  但若是直接关闭ssh连接(会话), 则该进程会被关闭, 这是因为进程受到了 SIGHUP 信号影响.
  系统对SIGHUP信号的默认处理是终止收到该信号的进程。所以若程序中没有捕捉该信号,当收到该信号时,进程就会退出。
  [root@linuxidc tmp]# sh test.sh > test.out &
  [4] 111758
  [root@linuxidc tmp]# http://www.iis7.com/a/lm/ftp/
  使进程在后台跑, 输出被重定向到指定文件
  可用 jobs -l 获取当前的所有后台进程
  [root@linuxidc tmp]# jobs -l
  [2]+ 113043 Running sh test.sh > /dev/null &
  单独使用 nohup
  [root@linuxidc tmp]# nohup sh test.sh > test.out 2>&1
  运行后是在前端跑, 若关闭会话, 进程不受影响.
  但此时 Ctrl+c会结束进程.
  nohup + &
  [root@linuxidc tmp]# nohup sh test.sh &
  [2] 112987
  [root@linuxidc tmp]# nohup: 忽略输入并把输出追加到"nohup.out"
  [root@linuxidc tmp]#
  忽略 Ctrl+c 以及 会话关闭的影响, 进程可以在后台持续运行.
  若会话未关闭, 可通过 jobs -l 查看当前该进程
  [root@linuxidc tmp]# jobs -l
  [1]+ 112987 Running nohup sh test.sh &

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-人工智能
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯