問題描述:
使用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
這樣就可以定位到該運行程序的路徑
