• Nohup 与 & 的区别


    SIGHUP 与 SIGINT

    1) SIGHUP
    本信号在用户终端连接(正常或非正常)结束时发出, 通常是在终端的控制进程结束时, 通知同一 Session 内的各个作业, 这时它们与控制终端不再关联
    登录 Linux 时,系统会分配给登录用户一个终端(Session)。在这个终端运行的所有程序,包括前台进程组和后台进程组,一般都属于这个 Session。当用户退出Linux 登录时,前台进程组和后台有对终端输出的进程将会收到 SIGHUP 信号; 这个信号的默认操作为终止进程因此前台进程组和后台有终端输出的进程就会中止。不过可以捕获这个信号,比如 wget 能捕获 SIGHUP 信号,并忽略它,这样就算退出了 Linux 登录,wget 也能继续下载 。
    此外,对于与终端脱离关系的守护进程,这个信号用于通知它重新读取配置文件。
    2) SIGINT
    程序终止(Interrupt)信号, 在用户键入 INTR 字符(通常是 Ctrl-C)时发出,用于通知前台进程组终止进程

    &(免疫 SIGHUP)

    使用 & 后台运行程序:

    ①. — 结果会输出到终端

    ②. — 使用 Ctrl + C 发送 SIGINT 信号,程序免疫

    ③. — 关闭 Session 发送 SIGHUP 信号,程序关闭

    Nohup(免疫 SIGINT)

    使用 Nohup 运行程序:

    ①. — 结果默认会输出到 nohup.out

    ②. — 使用 Ctrl + C 发送 SIGINT 信号,程序关闭

    ③. — 关闭 Session 发送 SIGHUP 信号,程序免疫

    最佳实践

    平日线上经常使用 Nohup 和 & 配合来启动程序:

    同时免疫 SIGINT 和 SIGHUP 信号

    PS :不要将信息输出到终端标准输出,标准错误输出,而要用日志组件将信息记录到日志里

  • 相关阅读:
    Element ui 的使用
    Vue基本介绍
    静态界面传值javascript
    手机网页怎么禁止缩放、拖放、如何屏蔽到手机本身键盘
    jQuery学习之prop和attr的区别示例介绍
    jquery复选框 选中事件 及其判断是否被选中
    手机端html5触屏事件(touch事件)
    页面滚动到底部自动 Ajax 获取文章
    转Python RegEx正则
    转Python 日期
  • 原文地址:https://www.cnblogs.com/zzzwqh/p/13977053.html
Copyright © 2020-2023  润新知