2017-04-13 97 views
0

我有一個使用Mosquitto客戶端的php腳本。我正在使用putty SSH訪問服務器。我想連續在後臺運行php腳本,即使我從putty斷開連接。我曾嘗試屏幕的nohup但在後臺運行php腳本,永遠不會死亡linux

關閉膩子窗口,當它停止謝謝

+0

你有沒有聽說過這個名字的cron的命令會話? –

回答

1

一個簡單的解決方案是

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=""空)

+0

謝謝我找到它。這與您的解決方案是一樣的。現在如何阻止這個過程?我使用了ps -ef | grep nohup,但問題是PID總是會改變,所以每次我嘗試殺死它時,都會說PID不存在 – user3921905

+0

@ user3921905,我添加了一個解決方案來使用標準UNIX控制腳本機械學 – wormi4ok

0

使用screen是一個比nohup更好的解決方案。

屏幕讓你的名字會和以後重新加入他們,所以你不需要求助於用ps找到你轉到後臺運行的應用程序

可以啓動一個名爲screen會話這樣

screen -S [session name] 

哪你可以從CTRL分離 - 一個d然後用

重新安裝
screen -r [session name] 

您也可以在後臺開始

screen -dmS [session name] [command] 

https://www.gnu.org/software/screen/manual/screen.html