• 关于Linux中后台运行程序(&)退出时收不到SIGHUP信号的说明


    你可能在很多地方看到过类似这样的话:

    “但是我们很多程序并不像mysqld一样做成守护进程,可能我们的程序只是普通程序而已,一般这种程序使用&结尾,但是如果终端关闭,那么程序也会被关闭。但是为了能够后台运行,那么我们就可以使用nohup这个命令”

    很多博客和文章都是上面那样的陈述,包括鸟哥的Linux私房菜也在第17章脱机管理问题中如是说。事实真的是这样么?从我开始使用linux系统一直到目前为止,我每次在本地终端或者ssh到远程服务器上之后,直接 xxxx &,在后台启动一个程序后,里面使用exit命令退出(或者按ctrl+D快捷键退出),过一段时间再次打开终端或者ssh到远程服务器上之后,用ps查看进程状态,发现之前后台运行的程序依然稳定的在系统中支持运行。不相信的读者可以自行测试。为什么实际情况和上面的论断相悖?实际上,上面陈述是对的,但是现实是复杂的,就像Linux有很多发行版一样,linux的终端或者伪终端也是由各个厂商或者组织实现的。在终端中有个内置的命令叫做: shopt,该命令定义了很多终端的默认行为。待续.....

  • 相关阅读:
    Chapter01_前言、入门程序、常量、变量
    面向对象知识点总结
    Java快捷键
    上线
    docker
    分页,过滤,搜索,排序
    Celery
    django-redis 缓存使用
    前台登录注册修订
    短信注册接口
  • 原文地址:https://www.cnblogs.com/pluse/p/13027702.html
Copyright © 2020-2023  润新知