如何在 gitlab-ci.yml 中的構建程序之后運行基于服務的命令?
例如,我想運行:
php artisan queue:listen --timeout=0 &
問題是構建永久運行并且在等待此命令的結果時不會完成(即使此命令永遠不會完成)。
無論如何我可以將它作為后臺任務運行嗎?我試過 nohup 沒有運氣。
uj5u.com熱心網友回復:
如此處所述:
以 Runner 開頭的行程,即使您在末尾添加
nohup和,也標有行程組 ID。作業完成后,Runner 正在向整個行程組 發送終止信號。 因此,任何直接從 CI 作業啟動的行程都將在作業結束時終止。&
如果您控制目標服務器,則使用 syst enter code hereemd 服務(如在同一頁面中)仍然是一種選擇。
uj5u.com熱心網友回復:
在 VonC 的幫助下——這就是我采用的方法。
我使用的 Alpine Linux 與他提供的鏈接略有不同,但方法相同。
我在其中創建了一個檔案/etc/init.d并授予它chmod x權限。
具有以下內容:
#!/sbin/openrc-run
command="php /var/www/artisan queue:listen"
command_args="--timeout=0"
command_background=true
pidfile="/run/${RC_SVCNAME}.pid"
rc-service laravel-queue start然后我在 gitlab-ci 組態檔中運行它。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/452484.html
