如何利用nohup命令避免程序中断
你肯定遇到过这种情况:在服务器上跑着一个耗时很长的任务,结果不小心关掉了终端窗口,或者SSH连接断开了,一切前功尽弃。这时候,nohup 就是你的救星。它的全称是 "no hang-up",直译过来就是“不挂断”——让程序在后台安安静静地跑,哪怕你退出登录,它也照样干自己的活。 基本用法 用起来其实
你肯定遇到过这种情况:在服务器上跑着一个耗时很长的任务,结果不小心关掉了终端窗口,或者SSH连接断开了,一切前功尽弃。这时候,nohup 就是你的救星。它的全称是 "no hang-up",直译过来就是“不挂断”——让程序在后台安安静静地跑,哪怕你退出登录,它也照样干自己的活。

基本用法
用起来其实很简单,就一行命令的事。
运行命令并忽略挂起信号:
nohup command &command就是你想运行的程序或脚本。&符号把命令丢到后台,这样你就能继续干别的事了。
重定向输出:默认情况下,
nohup会把标准输出和标准错误输出都扔进一个叫nohup.out的文件里。如果你不想用这个名字,也可以自己指定输出文件:nohup command > output.log 2>&1 &>把标准输出重定向到output.log。2>&1把标准错误输出也送到同一个地方,也就是output.log。这样日志就干干净净地集中在一起了。
示例
举个例子,假设你有个 Python 脚本 script.py 要跑,希望输出记录到 script_output.log 里:
nohup python script.py > script_output.log 2>&1 &
搞定,脚本就在后台默默运行了,你可以安心关掉终端,甚至下班回家。
检查进程状态
怎么知道它还在不在跑?用 ps 命令查一下:
ps aux | grep script.py
如果看到对应的进程,说明它还在兢兢业业地工作。
终止进程
哪天想让它停下来,找到它的进程ID(PID),然后送一个 kill 信号:
kill -9
-9 是 SIGKILL,强制终止,不给它任何反抗的机会。
注意事项
- 用了
nohup的程序会一直运行,直到它自己结束或者你手动杀掉它。 - 如果在SSH会话里运行
nohup命令,即使关闭SSH连接,程序也不会停止——这正是它存在的意义。 - 确保你有足够的权限运行命令,并且有权限写入输出文件所在的目录,否则会报错。
掌握了这些,你就可以放心地把那些耗时任务交给 nohup,再也不用担心终端关闭带来的麻烦了。
IntelliJ IDEA 是 JetBrains 推出的专业集成开发环境,重点服务于 Java、Kotlin 与 JVM 项目开发。软件集成代码补全、静态检查、重构、调试、测试、版本控制及构建工具,并可借助插件扩展语言和框架支持。
JetBrains PyCharm 是面向 Python 开发者的集成开发环境,提供智能补全、代码检查、重构、调试、测试、版本控制及虚拟环境管理功能。Mac 版兼容 Intel 与 Apple 芯片,核心功能可免费使用。
JetBrains WebStorm 是面向 JavaScript、TypeScript 和现代 Web 技术的专业集成开发环境,可智能理解项目结构,提供代码补全、重构、错误检查、运行调试、测试及 Git 工具。
JetBrains IntelliJ IDEA 是以 Java、Kotlin 和 JVM 项目为核心的专业集成开发环境,提供智能补全、代码检查、安全重构、调试、测试、版本控制及构建工具集成。统一发行版的核心功能可免费用于商业和非商业项目,
PhpStorm 是 JetBrains 面向 PHP 与现代 Web 开发打造的专业集成开发环境,提供代码补全、静态检查、重构、调试、测试、数据库、版本控制及前端语言支持。Windows 用户可直接下载安装程序,
PyCharm 是 JetBrains 推出的 Python 集成开发环境,提供智能代码补全、错误检查、重构、调试、测试、Git、终端及 Jupyter Notebook 支持。统一版安装后可体验 30 天 Pro 功能,













