• 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 :不要将信息输出到终端标准输出,标准错误输出,而要用日志组件将信息记录到日志里

  • 相关阅读:
    Ilya Muromets(DP or 思维)
    2018 焦作网络赛 L Poor God Water ( AC自动机构造矩阵、BM求线性递推、手动构造矩阵、矩阵快速幂 )
    上下界的网络流模板
    计蒜客 2018南京网络赛 I Skr ( 回文树 )
    回文树 / 自动机模板
    Nowcoder 练习赛26 D xor序列 ( 线性基 )
    线性基模板
    Tarjan求强连通分量、求桥和割点模板
    Nowcoder 挑战赛23 B 游戏 ( NIM博弈、SG函数打表 )
    第二类斯特林数模板
  • 原文地址:https://www.cnblogs.com/zzzwqh/p/13977053.html
Copyright © 2020-2023  润新知