Laravel Horizon + Supervisor en MacOs con Laravel Herd + Brew Escenario El indicado en el título, fue probado con Laravel 12 y para una app en la que se necesita trabajar de forma constante desde un Mac. Yo para emular ciertas cosas, lo uso en desarrollo, pero cuando termino, desactivo las tareas mmediante configuración ( .env ) Instalar Supervisor Necesitamos instalar Supervisor brew install supervisor En Mac con brew, veremos que el fichero de configuración es /opt/homebrew/etc/supervisord.conf el cual, al final hace un include files = /opt/homebrew/etc/supervisor.d/*.ini Dicho esto, tenemos claro que el fichero de configuración para nuestro despliegue (o los diferentes despliegues) sera incluido en ese directorio, como por ejemplo para una de mis apps, /opt/homebrew/etc/supervisor.d/swissknife.ini Ejemplo básico para una app sencilla, teniendo en cuenta que quiero especificar indubitadamente la versión de php [program:swissknife] process_name=%(program_name)s command="/Users/abkrim/Library/Application Support/Herd/bin/php" /Users/abkrim/SitesLR12/swissknife/artisan horizon autostart=true autorestart=true user=abkrim numprocs=1 redirect_stderr=true stdout_logfile=/Users/abkrim/SitesLR12/swissknife/storage/logs/horizon.log stderr_logfile=/Users/abkrim/SitesLR12/swissknife/storage/logs/horizon.err.log stopwaitsecs=3600 #### Para iniciarlo y activarlo al reinicio brew services start supervisor Debug de problemas A veces, puede que hagamos cambios en el fichero de configuración y no consigamos que funcione. Para ello paramos el servicio de brew y lo cargamos de forma manual brew services stop supervisor supervisord -n -c /opt/homebrew/etc/supervisord.conf Error: %(process_num) must be present within process_name when numprocs > 1 in section 'program:swissknife' (file: '/opt/homebrew/etc/supervisor.d/swissknife.ini') For help, use /opt/homebrew/bin/supervisord -h Mira, un error de configuración que deja el servicio de nuestra app, sin cargarse. Con eso podemos corregir el tema, y volver a cargar de forma automática nuestro supervisor. supervisord -n -c /opt/homebrew/etc/supervisord.conf 2025-02-28 12:20:38,341 WARN For [program:swissknife], redirect_stderr=true but stderr_logfile has also been set to a filename, the filename has been ignored 2025-02-28 12:20:38,342 INFO Included extra file "/opt/homebrew/etc/supervisor.d/swissknife.ini" during parsing 2025-02-28 12:20:38,353 INFO RPC interface 'supervisor' initialized 2025-02-28 12:20:38,353 CRIT Server 'unix_http_server' running without any HTTP authentication checking 2025-02-28 12:20:38,353 INFO supervisord started with pid 65213 2025-02-28 12:20:39,361 INFO spawned: 'swissknife' with pid 65218 2025-02-28 12:20:40,735 INFO success: swissknife entered RUNNING state, process has stayed up for > than 1 seconds (startsecs) Matamos el proceso, y ya podemos reiniciar con brew. brew services start supervisor ==> Successfully started `supervisor` (label: homebrew.mxcl.supervisor) Y a disfrutar de Horizon+Laravel Aviso Esta documentación y su contenido, no implica que funcione en tu caso o determinados casos. También implica que tienes conocimientos sobre lo que trata, y que en cualquier caso tienes copias de seguridad. El contenido el contenido se entrega, tal y como está, sin que ello implique ningún obligación ni responsabilidad por parte de Castris Si necesitas soporte profesional puedes contratar con Castris soporte profesional .