&的意思是在后台运行, 什么意思呢? 意思是说,当你在执行 ./a.out & 的时候,即使你用ctrl C,那么a.out照样运行(因为对SIGINT信号免疫)。但是要注意,如果你直接关掉shell后,a.out进程同样消失。 可见, &的后台并不硬(因为对SIGHUP信号不免疫)。

nohup的意思是忽略SIGHUP信号,所以当运行nohup ./a.out的时候。关闭shell,a.out进程还是存在的(对SIGHUP信号免疫)。但是, 要注意,如果你直接在shell中用Ctrl C,那么,a.out进程也是会消失的(因为对SIGINT信号不免疫)

 所以,&nohup没有半毛钱的关系,要让进程真正不受shell中Ctrl C和shell关闭的影响,那该怎么办呢? 那就用nohup ./a.out &吧, 两全其美。

 如果你懂守护进程, 那么nohup ./a.out &颇有点让a.out成为守护进程的感觉。


原文:https://blog.csdn.net/stpeace/article/details/76389073

相关文章:

  • 2022-12-23
  • 2021-05-29
  • 2022-12-23
  • 2021-10-22
  • 2022-12-23
  • 2022-12-23
  • 2021-11-17
猜你喜欢
  • 2022-12-23
  • 2021-10-09
  • 2021-12-04
  • 2021-12-31
  • 2021-07-31
  • 2021-12-30
  • 2021-05-20
相关资源
相似解决方案