¿Cómo puedo ejecutar un comando basado en servicios después del proceso de compilación en gitlab-ci.yml?
Por ejemplo, me gustaría ejecutar:
php artisan queue:listen --timeout=0 &El problema es que la compilación se ejecuta perpetuamente y no finaliza mientras espera los resultados de este comando (aunque este comando nunca finaliza).
¿Hay alguna forma en que pueda ejecutarlo como una tarea en segundo plano? Intenté nohup sin suerte.
Como se menciona aquí :
El proceso iniciado con Runner, incluso si agrega
nohupy&al final, se marca con el ID del grupo de proceso.
Cuando finaliza el trabajo, el Runner envía una señal de finalización a todo el grupo de proceso.
Por lo tanto, cualquier proceso iniciado directamente desde el trabajo de CI finalizará al final del trabajo.
El uso de un enter code here servicio emd (como en esta misma página ) sigue siendo una opción, si controla el servidor de destino.
Con la ayuda de VonC, este es el enfoque que tomé.
Uso Alpine Linux de manera ligeramente diferente al enlace que proporcionó, pero con el mismo enfoque.
Creé un archivo en /etc/init.d y le di permisos chmod +x .
Con los siguientes contenidos:
#!/sbin/openrc-run command="php /var/www/artisan queue:listen" command_args="--timeout=0" command_background=true pidfile="/run/${RC_SVCNAME}.pid" Luego lo ejecuté con rc-service laravel-queue start dentro del archivo de configuración de gitlab-ci.