ARTICLE DETAIL

资讯详情

深耕商务建站与企业官网运营的一线实战洞察。

【实用技巧】终止nohup后台运行程序的完整步骤(附实战案例)

【实用技巧】终止nohup后台运行程序的完整步骤(附实战案例) 【实用技巧】终止nohup后台运行程序的完整步骤附实战案例在Linux服务器上我们常通过nohup命令让程序脱离终端后台运行比如深度学习训练脚本但需要终止时却不知道该怎么操作本文结合实战案例手把手教你精准终止nohup运行的程序。一、核心原理nohup运行的程序本质是Linux后台进程终止的核心逻辑是先找到进程的唯一标识PID→ 再通过PID终止进程二、具体操作步骤附实战案例以我实际运行的train_ae.py脚本为例全程演示操作流程。步骤1查找目标进程的PID使用ps -ef | grep 程序名命令定位进程这是最常用的方式ps-ef|greptrain_ae.py实战输出解析我执行上述命令后得到如下输出root 22819 0 99 Jan03 ? 8-20:58:11 python train_ae.py root 31183 30896 0 10:48 pts/10 00:00:00 grep --colorauto train_ae.py先看懂ps -ef输出列的含义按顺序列位置含义关键说明第1列UID运行进程的用户示例中为root第2列PID进程ID终止程序的核心重点关注第3列PPID父进程ID后台进程通常为0第4列%CPU进程占用CPU百分比99%说明脚本高负载运行第5列STIME进程启动时间Jan03表示1月3日启动第6列TTY关联终端?表示后台运行nohup特征第7列TIME累计运行时间8天20小时说明长期运行第8列CMD执行的命令区分目标进程和grep自身关键区分第一行python train_ae.py是真正要终止的目标进程PID为22819第二行grep --colorauto train_ae.py是查找命令自身的进程无需关注更不要误杀。步骤2终止进程两种方式找到PID22819后优先选择「优雅终止」无效再用「强制终止」。方式1优雅终止推荐发送正常终止信号让程序保存数据、释放资源kill22819方式2强制终止优雅终止无效时用若程序卡死比如kill后仍在运行用-9参数强制杀死注意可能导致数据丢失kill-922819步骤3验证是否终止成功再次执行查找命令若仅剩下grep自身进程或无输出说明终止成功ps-ef|greptrain_ae.py三、补充技巧可选如果知道程序占用的端口比如8080也可以通过端口查PID# 查找端口对应的进程lsof-i:8080# 或用netstat需安装net-toolsnetstat-tunlp|grep:8080四、注意事项务必区分「目标进程」和「grep自身进程」避免误杀其他程序非必要不使用kill -9尤其是涉及数据写入的程序如训练脚本、数据库程序普通用户只能终止自己的进程root用户可终止所有进程谨慎操作。五、总结终止nohup后台程序的核心查PIDps -ef | grep 程序名→ 杀进程kill/kill -9 PID重点关注ps -ef输出的第二列PID区分目标进程和grep自身进程优先优雅终止仅在程序无响应时使用强制终止。发布小提示发布时可在开头加一句场景说明比如“做深度学习训练时用nohup跑脚本后需要终止整理了这套实操流程”代码块和表格保留提升阅读体验可配图比如截图你的ps -ef输出更直观。关键点回顾终止nohup程序的核心是先通过ps -ef | grep 程序名找到目标进程的PID如22819区分ps输出中目标进程python train_ae.py和grep自身进程避免误操作优先用kill PID优雅终止无效再用kill -9 PID强制终止终止后需验证结果。
返回列表
PREV
查看更多资讯
NEXT
返回资讯列表