[英]Envoyer Deployment with custom artisan command fails
我在使用envoyer部署我的項目時遇到問題,該執行器執行我創建的工匠命令。
該命令獲取我的所有用戶,執行另一個工匠命令( $this->call('command')
)並通過遍歷所有用戶來執行它的操作。
問題在於:
foreach($usernames as $username) {
shell_exec('php ' . base_path('artisan') . ' command ' . $username . ' > /dev/null 2>/dev/null &');
}
此命令在后台啟動腳本。 它在沒有任何問題的情況下手動執行並且不會在超時結束(執行大約需要1秒),但在envoyer中它不會在部署步驟中停止運行並在超時時失敗,盡管它執行完美無瑕。
其他信息:
因為我在后台運行腳本的原因:
我開始的腳本打開一個套接字,他將全天候收聽,直到用戶手動取消它。
我剛剛創建了一個較小的示例,以確保它一切正常:
文件forever.php
將每隔5秒保持一次無限循環打印:
<?php
while (true) {
echo "I am still in the loop $argv[1]\n";
sleep(5);
}
文件script.php
將調用的多個實例forever.php
從父進程(一樣的,你做了什么)分離:
<?php
for ($i = 0; $i < 5; $i++) {
shell_exec("php forever.php $i > /dev/null 2>/dev/null &");
}
執行php script.php
,很明顯運行了forever.php
的5個實例。 所以你的代碼似乎很好(你展示的部分)。
在你的案例中我唯一能想到的是:
希望它有所幫助,如果您需要更多幫助,請提供更多信息。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.