如何在 Gitlab CICD 中运行后台任务?

Oli*_*ski 6 php laravel gitlab

在 gitlab-ci.yml 中构建过程之后如何运行基于服务的命令?

例如,我想运行:

php artisan queue:listen --timeout=0 &
Run Code Online (Sandbox Code Playgroud)

问题是构建会永久运行,并且在等待此命令的结果时不会完成(即使此命令永远不会完成)。

无论如何我可以将它作为后台任务运行吗?我尝试了 nohup 但没有运气。

Von*_*onC 4

正如这里提到的

以Runner开始的进程,即使添加nohupand &,最后也会标记进程组ID。
当作业完成时,Runner 向整个进程组发送终止信号。
因此,任何直接从 CI 作业启动的进程都将在作业结束时终止。

如果您控制目标服务器,则使用 systemd 服务(如同一页面中所示)仍然是一种选择。