我試圖運行redis:subscribe
artisan命令作爲服務,在後臺模式下,並且需要該腳本不會死於錯誤。不能運行工匠redis:訂閱命令作爲服務,在後臺和守護進程
我試過主管,但沒有結果。
你有什麼建議嗎?
- OS:CentOS的7
- 郎:PHP
- 框架:Laravel
我試圖運行redis:subscribe
artisan命令作爲服務,在後臺模式下,並且需要該腳本不會死於錯誤。不能運行工匠redis:訂閱命令作爲服務,在後臺和守護進程
我試過主管,但沒有結果。
你有什麼建議嗎?
我想我找到了最好的解決方案。
我製作了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;
我希望有人會發現它有用。
而你需要改變'default_socket_connection'。默認情況下它是60秒,如果連接在60秒內不使用,它將被中斷 – zgabievi
試圖執行此命令:
php artisan redis:subscribe &
在 '&' 允許設置cmd爲deamon。
我在命令的末尾搜索關於'&'的信息。當我意識到它只在後臺運行命令。如果腳本失敗,則不會重新啓動。但是我需要這個命令來保持運行而不管錯誤。 – zgabievi
您與主管有什麼問題?這非常適合你的嘗試。 –
所以,當我檢查程序狀態時,主管說它正在運行。但是,當我試圖從節點服務器向Laravel的redis發佈某些內容時,我沒有輸出。 當我手動調用'php artisan redis:subscribe'時,它正在工作,我得到的輸出是** laravel.log ** – zgabievi