2013-07-24 61 views
0

我列出的PID,然後嘗試使用殺吧:試圖殺死一個nohup的過程,改變的PID

nohup server & 
kill <PID> 

不過,我不斷收到錯誤:

enter image description here

這是因爲PID不斷變化! 當我嘗試殺死當前PID時,nohup進程突然變成另一個PID下面是不斷調整PID的過程的屏幕截圖。

enter image description here

回答

2

我不認爲你很明白的錯誤消息。

nohup只是啓動另一個進程(在您的示例中稱爲server),防止終端啓動它斷開連接時獲取SIGHUP。

這裏的問題不在於改變PID(顯示PID是nohup的PID時,臨時啓動),它是nohup不能找到一個名爲server在所有發射命令。

nohup: failed to run command ‘server’: No such file or directory

+0

感謝Joachim!這更有意義。如何找到我通過調用「nohup python test.py&」 – AllieCat

+0

@AllieCat啓動的進程的PID的正確方法至少在Linux上,一旦你做了'nohup ',就可以使用'$!'('echo $!'/'kill $!'/ ...)來處理pid。通常情況下,你可以將它回顯給一個文件,以便以後使用它。 –

1

您的過程不是不斷地改變PID,而是反覆啓動過程,並且每次都得到一個新的PID。

nohup server & 

啓動程序nohup並告訴它推出server。當nohup找不到server,它打印你看到錯誤消息和退出,因此你總是看到的

Exit 127 nohup server 

消息。