2016-01-27 28 views
0

我試圖運行redis:subscribe artisan命令作爲服務,在後臺模式下,並且需要該腳本不會死於錯誤。不能運行工匠redis:訂閱命令作爲服務,在後臺和守護進程

我試過主管,但沒有結果。

你有什麼建議嗎?


  • OS:CentOS的7
  • 郎:PHP
  • 框架:Laravel
+1

您與主管有什麼問題?這非常適合你的嘗試。 –

+0

所以,當我檢查程序狀態時,主管說它正在運行。但是,當我試圖從節點服務器向Laravel的redis發佈某些內容時,我沒有輸出。 當我手動調用'php artisan redis:subscribe'時,它正在工作,我得到的輸出是** laravel.log ** – zgabievi

回答

1

我想我找到了最好的解決方案。

我製作了bash文件,即運行我的腳本。它正在檢查錯誤並重新啓動腳本執行。我已將這個bash文件啓動,作爲服務器運行。

這是我的全魔:

#!/bin/bash 

while true; do 

nohup path/to/php /path/to/artisan redis:subscribe >> /path/to/logs/redis.log & 

PID=$! 
wait $PID 
echo $PID has ended 

sleep 1; 
done; 

我希望有人會發現它有用。

+0

而你需要改變'default_socket_connection'。默認情況下它是60秒,如果連接在60秒內不使用,它將被中斷 – zgabievi

1

試圖執行此命令:

php artisan redis:subscribe & 

在 '&' 允許設置cmd爲deamon。

+0

我在命令的末尾搜索關於'&'的信息。當我意識到它只在後臺運行命令。如果腳本失敗,則不會重新啓動。但是我需要這個命令來保持運行而不管錯誤。 – zgabievi

相關問題