用技巧】終止nohup后臺(tái)運(yùn)行程序的完整步驟(附實(shí)戰(zhàn)案例))
【實(shí)用技巧】終止nohup后臺(tái)運(yùn)行程序的完整步驟附實(shí)戰(zhàn)案例在Linux服務(wù)器上我們常通過nohup命令讓程序脫離終端后臺(tái)運(yùn)行比如深度學(xué)習(xí)訓(xùn)練腳本但需要終止時(shí)卻不知道該怎么操作本文結(jié)合實(shí)戰(zhàn)案例手把手教你精準(zhǔn)終止nohup運(yùn)行的程序。一、核心原理nohup運(yùn)行的程序本質(zhì)是Linux后臺(tái)進(jìn)程終止的核心邏輯是先找到進(jìn)程的唯一標(biāo)識(shí)PID→ 再通過PID終止進(jìn)程二、具體操作步驟附實(shí)戰(zhàn)案例以我實(shí)際運(yùn)行的train_ae.py腳本為例全程演示操作流程。步驟1查找目標(biāo)進(jìn)程的PID使用ps -ef | grep 程序名命令定位進(jìn)程這是最常用的方式ps-ef|greptrain_ae.py實(shí)戰(zhàn)輸出解析我執(zhí)行上述命令后得到如下輸出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輸出列的含義按順序列位置含義關(guān)鍵說明第1列UID運(yùn)行進(jìn)程的用戶示例中為root第2列PID進(jìn)程ID終止程序的核心重點(diǎn)關(guān)注第3列PPID父進(jìn)程ID后臺(tái)進(jìn)程通常為0第4列%CPU進(jìn)程占用CPU百分比99%說明腳本高負(fù)載運(yùn)行第5列STIME進(jìn)程啟動(dòng)時(shí)間Jan03表示1月3日啟動(dòng)第6列TTY關(guān)聯(lián)終端?表示后臺(tái)運(yùn)行nohup特征第7列TIME累計(jì)運(yùn)行時(shí)間8天20小時(shí)說明長(zhǎng)期運(yùn)行第8列CMD執(zhí)行的命令區(qū)分目標(biāo)進(jìn)程和grep自身關(guān)鍵區(qū)分第一行python train_ae.py是真正要終止的目標(biāo)進(jìn)程PID為22819第二行g(shù)rep --colorauto train_ae.py是查找命令自身的進(jìn)程無需關(guān)注更不要誤殺。步驟2終止進(jìn)程兩種方式找到PID22819后優(yōu)先選擇「優(yōu)雅終止」無效再用「強(qiáng)制終止」。方式1優(yōu)雅終止推薦發(fā)送正常終止信號(hào)讓程序保存數(shù)據(jù)、釋放資源kill22819方式2強(qiáng)制終止優(yōu)雅終止無效時(shí)用若程序卡死比如kill后仍在運(yùn)行用-9參數(shù)強(qiáng)制殺死注意可能導(dǎo)致數(shù)據(jù)丟失kill-922819步驟3驗(yàn)證是否終止成功再次執(zhí)行查找命令若僅剩下grep自身進(jìn)程或無輸出說明終止成功ps-ef|greptrain_ae.py三、補(bǔ)充技巧可選如果知道程序占用的端口比如8080也可以通過端口查PID# 查找端口對(duì)應(yīng)的進(jìn)程lsof-i:8080# 或用netstat需安裝net-toolsnetstat-tunlp|grep:8080四、注意事項(xiàng)務(wù)必區(qū)分「目標(biāo)進(jìn)程」和「grep自身進(jìn)程」避免誤殺其他程序非必要不使用kill -9尤其是涉及數(shù)據(jù)寫入的程序如訓(xùn)練腳本、數(shù)據(jù)庫程序普通用戶只能終止自己的進(jìn)程root用戶可終止所有進(jìn)程謹(jǐn)慎操作。五、總結(jié)終止nohup后臺(tái)程序的核心查PIDps -ef | grep 程序名→ 殺進(jìn)程kill/kill -9 PID重點(diǎn)關(guān)注ps -ef輸出的第二列PID區(qū)分目標(biāo)進(jìn)程和grep自身進(jìn)程優(yōu)先優(yōu)雅終止僅在程序無響應(yīng)時(shí)使用強(qiáng)制終止。發(fā)布小提示發(fā)布時(shí)可在開頭加一句場(chǎng)景說明比如“做深度學(xué)習(xí)訓(xùn)練時(shí)用nohup跑腳本后需要終止整理了這套實(shí)操流程”代碼塊和表格保留提升閱讀體驗(yàn)可配圖比如截圖你的ps -ef輸出更直觀。關(guān)鍵點(diǎn)回顧終止nohup程序的核心是先通過ps -ef | grep 程序名找到目標(biāo)進(jìn)程的PID如22819區(qū)分ps輸出中目標(biāo)進(jìn)程python train_ae.py和grep自身進(jìn)程避免誤操作優(yōu)先用kill PID優(yōu)雅終止無效再用kill -9 PID強(qiáng)制終止終止后需驗(yàn)證結(jié)果。