nohup和&不是一个东西
2018-02-01 15:47
302 查看
看个小程序
生成可执行程序a.out, 下面, 我会在我的linux机器上进行测试!!!
&的意思是在后台运行, 什么意思呢? 意思是说, 当你在执行 ./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关闭的影响, 那该怎么办呢? 那就用nohua ./a.out &吧, 两全其美。
如果你懂守护进程, 那么nohup ./a.out &颇有点让a.out成为守护进程的感觉。
原创地址:http://blog.csdn.net/stpeace/article/details/76389073
#include <stdio.h> #include <unistd.h> int main () { int x = 0; while(1) { printf("hello %d, pid %u, ppid %d\n", x++, getpid(), getppid()); sleep(1); } return 0; }
生成可执行程序a.out, 下面, 我会在我的linux机器上进行测试!!!
&的意思是在后台运行, 什么意思呢? 意思是说, 当你在执行 ./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关闭的影响, 那该怎么办呢? 那就用nohua ./a.out &吧, 两全其美。
如果你懂守护进程, 那么nohup ./a.out &颇有点让a.out成为守护进程的感觉。
原创地址:http://blog.csdn.net/stpeace/article/details/76389073
相关文章推荐
- 别把&和nohup混为一谈, 根本不是同一个东西好不好 ------ 聊聊./a.out & , nohut ./a.out , nohup ./a.out &的区别
- sap 消息00347 消息文本:字段&1&2不是一个输入字段
- 枚举数和 枚举类型可不是一个东西啊
- JavaScript 这类弱类型的语言,在判断相等方面很麻烦,明明不是一个东西,却相等了。这里通过示例展示 null、 undefined、 0、 false、 "" 的相等情况。 var arr
- 让BDS2007(Delphi2007&amp;C++Builder2007)编译出一个个性的文件名,而不是以Project的名称来命名
- 一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制?
- Lesson 65 Not a baby 不是一个孩…
- 记录一个思路 错误【消息: 'NTES.one(...)' 为空或不是对象 】Chrome没事,ie等内核浏览器报错
- 在一个框架中,如何用window.location='';的命令返回主页,而不是在框架中返回主页
- 关于asp错误'C:\inetpub\wwwroot\bg\#databases#\seablog.mdb'不是一个有效的路径。
- body 中间不是所有东西都能加的!否则<frameset 内容不执行了
- 人生是一个连续的过程,没什么东西能影响人的一生,怎么选择不是问题。问题是每天都要努力
- 在一个框架中,如何用window.location='';的命令返回主页,而不是在框架中返回主页
- 刚刚从微博转到博客,筛选一下不是随手记录的东西转过来,这是一个tableviewcontroller的发现
- 让BDS2007(Delphi2007&C++Builder2007)编译出一个个性的文件名,而不是以Project的名称来命名
- 我放弃spring.net & nhibernate 那烦琐的xml配置文档.我自己动手写一个东西.
- 人生是一个连续的过程,没什么东西能影响人的一生,怎么选择不是问题。问题是每天都要努力
- C/C++日常学习总结(第二篇)结构体和类的大小及区别&为什么是new一个对象而不是malloc
- 一个大专生的自白——为了一个功能不睡不吃的也要搞定,然后就是实践中的理解,不是单纯的去完成某个东西
- c语言:sizeof的使用,其不是函数,是一个操作符关键字,定义一个数组arr,输出arr和&arr的区别