linux 查看進程號並殺死進程


問題描述:

使用nohup &運行后台程序,命令如下:

nohup python server.py &

該命令可以保持程序后台運行(保證你的xshell斷了但服務不會停)

但是在重新啟動server.py的時候,服務器會提示端口被占用

這時需要先殺死之前的程序,再重新啟動。

步驟:

1.查看進程號

1)使用 lsof -i:端口號查看進程號(當知道端口號的時候),比如查看1500端口的進程號:

lsof -i:1500

這個PID 79297就是進程號

2)當系統不支持lsof時,可以使用netstat

netstat -ntlp | grep [port]

3)當不知道端口號,但是知道程序名稱時,使用ps aux查看

ps -aux | grep server.py

不是S+的那一列對應的就是PID。

Sl那一列代表運行狀態STAT,S表示中斷?反正查了查我沒懂。我理解的是S+代表你查詢命令的臨時進程號,而不是程序運行的進程號,一般S,Sl或者Sl+表示正在運行的程序。

(另外,我發現使用ps aux的時候,為啥別人的USER顯示名字,而我就顯示515用戶id?查了發現linux本身機制問題,當用戶名稱超過8個字符,系統會自動顯示用戶對應id。)

2. 干掉他

kill -9 PID

其他例子:

備注:

1)根據PID可以查詢進程名稱,命令如下:

ll /proc/PID

這樣就可以定位到該運行程序的路徑


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM