我有一個使用Mosquitto客戶端的php腳本。我正在使用putty SSH訪問服務器。我想連續在後臺運行php腳本,即使我從putty斷開連接。我曾嘗試屏幕的nohup但在後臺運行php腳本,永遠不會死亡linux
關閉膩子窗口,當它停止謝謝
我有一個使用Mosquitto客戶端的php腳本。我正在使用putty SSH訪問服務器。我想連續在後臺運行php腳本,即使我從putty斷開連接。我曾嘗試屏幕的nohup但在後臺運行php腳本,永遠不會死亡linux
關閉膩子窗口,當它停止謝謝
一個簡單的解決方案是
nohup php script.php &
所以你在後臺運行腳本,並從終端斷開過程。如果沒有幫助,請在它後面嘗試使用disown
命令。這些命令之間存在差異good answer with detailed explanation。
要完全控制腳本,一個不錯的選擇將是System V
初始化腳本。在https://github.com/fhd/init-script-template有一個模板,您可以使用它。
將模板複製到/etc/init.d
目錄並重新命名。在模板中,您需要更改變量:
dir="/your/working/directory"
cmd="nohup php script.php"
user="your user"
這樣做,你就可以通過
/etc/init.d/your_script start
/etc/init.d/your_script stop
控制腳本請確保您有權限/var/log/
和/var/run/
,編寫或運行腳本sudo
(離開user=""
空)
謝謝我找到它。這與您的解決方案是一樣的。現在如何阻止這個過程?我使用了ps -ef | grep nohup,但問題是PID總是會改變,所以每次我嘗試殺死它時,都會說PID不存在 – user3921905
@ user3921905,我添加了一個解決方案來使用標準UNIX控制腳本機械學 – wormi4ok
使用screen
是一個比nohup更好的解決方案。
屏幕讓你的名字會和以後重新加入他們,所以你不需要求助於用ps找到你轉到後臺運行的應用程序
可以啓動一個名爲screen
會話這樣
screen -S [session name]
哪你可以從CTRL分離 - 一個,d然後用
重新安裝screen -r [session name]
您也可以在後臺開始
screen -dmS [session name] [command]
你有沒有聽說過這個名字的cron的命令會話? –