守护进程与用&结尾的后台运行程序有什么区别

最大的区别有几点:

(a)守护进程已经完全脱离终端控制台了,而后台程序并未完全脱离终端,在终端未关闭前还是会往终端输出结果
(b)守护进程在关闭终端控制台时不会受影响,而后台程序会随用户退出而停止,需要在以nohup command & 格式运行才能避免影响
(c)守护进程的会话组和当前目录,文件描述符都是独立的。后台运行只是终端进行了一次fork,让程序在后台执行,这些都没改变。

如何查看守护进程:

ps -axj

-a表示显示由其他用户所拥有的进程的状态
-x显示没有控制终端的进程状态
-j显示与作业有关的信息:会话ID、进程组ID等

如何编写守护进程:

可参考《unix环境高级编程》

第13章 守护进程

如何使普通进程达到守护进程的部分效果:

nohup ./a.out &

nohup忽略SIGHUP信号,&忽略SIGINT信号。

End;

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容