千家信息网

Linux中nohup与&的用法和区别详解

发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,示例 :我们用python代码loop_hello.py做示例,代码的作用是循环输出循环次数和hello world!,每次输出后sleep 1秒示例代码如下:import time def main
千家信息网最后更新 2025年12月02日Linux中nohup与&的用法和区别详解

示例 :

我们用python代码loop_hello.py做示例,代码的作用是循环输出循环次数和hello world!,每次输出后sleep 1秒

示例代码如下:

import time def main(): i = 0  while True:  i += 1  print('%d: hello world!' %(i))  time.sleep(1) if '__main__' == __name__: main()

运行loop_hello.py,输出结果如下:

程序每隔一秒会在终端输出一个字符串,此时如果键入Ctrl+C ,程序会收到一个SIGINT信号,如果不做特殊处理,程序的默认行为是终止(如上图)。

&

使用 python loop_hello.py &,效果如下所示:

首先会在终端显示进程号是2367

键入Ctrl + C,发出SIGINT信号,程序会继续运行

关掉session,程序会收到一个SIGHUP信号,通过ps aux | grep loop_hello.py可以看到,进程2367也关闭了

nohup

使用nohup python loop_hello.py,效果如下:

  1. 前台没有出现进程号
  2. 有一个"忽略输入并把输出追加到"nohup.out""的提示
  3. hello的输出也没有出现在前台

如果关掉session,程序会不会关闭呢?

  1. 使用ps aux | grep loop_hello查看进程号
  2. 关掉session,程序会收到一个SIGHUP信号
  3. 再次使用ps aux | grep loop_hello,发现进程仍然存在
  4. kill掉进程

测试一下Ctrl +C

使用nohup启动loop_hello.py,如果键入Ctrl+C ,程序收到SIGINT信号后,直接关闭了

&和nohup同时使用

使用nohup python loop_hello.py &运行程序,效果如下:

键入Ctrl + C,发送SIGINT信号 使用ps aux查看,进程仍然存在

关闭session,发送SIGHUP信号 使用ps aux查看,进程依然存在

如果想要终止进程的话,只能使用kill了

总结 :

使用&后台运行程序:

  1. 结果会输出到终端
  2. 使用Ctrl + C发送SIGINT信号,程序免疫
  3. 关闭session发送SIGHUP信号,程序关闭

使用nohup运行程序:

  1. 结果默认会输出到nohup.out
  2. 使用Ctrl + C发送SIGINT信号,程序关闭
  3. 关闭session发送SIGHUP信号,程序免疫

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

  1. 同时免疫SIGINT和SIGHUP信号

好了,以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对的支持。

程序 信号 进程 输出 运行 代码 效果 示例 终端 结果 免疫 内容 前台 同时 学习 循环 特殊 上图 价值 作用 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 如何存储图片和显示数据库图片 浏览器连接远程服务器 魔兽世界 服务器端 app服务器怎么保证安全 jvav软件开发代码 网络安全信息部门 服务器如何配置打印机 网络安全资产调研 修改数据库日期数据类型 网络技术费如何做会计分录 威铭软件开发有限公司 我们作为大学生怎样注意网络安全 普通人要怎么预防网络安全 网络安全架构论文结语怎么写 兰州网络安全大赛 莱芜戴尔服务器零售商 数据库中两个数相除怎么写 电信4g网络连接不上服务器 足球球员数据库软件 分布式网络数据库怎么配置 网络安全应检查的内容 加拿大专利数据库查询系统 起一个好队名 软件开发 问道手游服务器有多少个 软件开发 测试面试经验 蓝璟网络技术开发有限公司南阳 网络安全信息安全研究生招聘 南通翻译软件开发 微信如何打开自动连接服务器 兰州共享充电软件开发公司
0