nohup命令可让程序忽略挂起信号,在后台持续运行,即使关闭终端或断开SSH连接也不会中断。基本用法为nohupcommand&,支持重定向输出至指定文件。通过ps命令检查进程,用kill-9终止。需确保运行权限及输出目录写入权限。
你肯定遇到过这种情况:在服务器上跑着一个耗时很长的任务,结果不小心关掉了终端窗口,或者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 的程序会一直运行,直到它自己结束或者你手动杀掉它。nohup 命令,即使关闭SSH连接,程序也不会停止——这正是它存在的意义。掌握了这些,你就可以放心地把那些耗时任务交给 nohup,再也不用担心终端关闭带来的麻烦了。
侠游戏发布此文仅为了传递信息,不代表侠游戏网站认同其观点或证实其描述