Hello, I'm using Supervisord for separate process manager/consumer with RabbitMQ and Symfony but it's not working properly, it disconnects after a couple of hours.. and for a workaround, I'm using a restart job on Jenkins (as in the linked issue in GitHub) but tbh I would like to have a clean stack.. if anyone knows a better alternative than supervisord it will be awesome..
Many thanks!
I've had good experiences moving from Supervisord to using systemd for managing processes, especially for setups involving RabbitMQ and Symfony. Systemd not only integrates well with the system, offering better control and management, but it also simplifies logging through journalctl and handles automatic restarts seamlessly.
Here's what I did to make the switch: - Craft a Service File: I wrote a .service file in /etc/systemd/system/ to describe my service. It includes details on how to start and stop the process, among other things. - Set Up Service Behavior: Inside this file, I specified commands like ExecStart for launching my process, Restart to ensure it always restarts after failure, and set the User to define which user runs the process. - Enable and Launch the Service: With systemctl enable my-service.service, I made sure my service would start on boot, and systemctl start my-service.service got it running right away. - Manage and Log: Whenever I needed to check on things, journalctl was there for logs, and systemctl helped me manage the service (like checking its status or restarting it). - Switching to systemd resolved the disconnection issues I faced without needing any workarounds like restartingI've had good experiences moving from Supervisord to using systemd for managing processes, especially for setups involving RabbitMQ and Symfony. Systemd not only integrates well with the system, offering better control and management, but it also simplifies logging through journalctl and handles automatic restarts seamlessly.
Here's what I did to make the switch: - Craft a Service File: I wrote a .service file in /etc/systemd/system/ to describe my service. It includes details on how to start and stop the process, among other things. - Set Up Service Behavior: Inside this file, I specified commands like ExecStart for launching my process, Restart to ensure it always restarts after failure, and set the User to define which user runs the process. - Enable and Launch the Service: With systemctl enable my-service.service, I made sure my service would start on boot, and systemctl start my-service.service got it running right away. - Manage and Log: Whenever I needed to check on things, journalctl was there for logs, and systemctl helped me manage the service (like checking its status or restarting it). - Switching to systemd resolved the disconnection issues I faced without needing any workarounds like restart jobs. It felt like a cleaner, more reliable approach.
Many thanks for the recommendation! I will give it a try, thanks : )
Download VidMate App (APK) latest version 2025 in Official Website. VidMate App is the best video downloader for YT, Facebook and all other movie & video platforms.
https://vidmatehd.net/
Messenger provides a message bus with the ability to send messages and then handle them immediately in your application or to be handled later.
Switching from Supervisord to systemd improved stability and control in my setup. Creating a custom service file, enabling auto-restarts, and using journalctl for logs made process management much smoother.
It sounds like SupervisorD might not be the best fit for managing long-running RabbitMQ consumers, especially if you’re facing disconnects after several hours. You might want to consider using systemd for better process supervision—it offers more robust restart policies and better resource management. Alternatively, tools like PM2 (popular in Node.js but also usable for other processes) or Docker containers with restart policies can help keep your consumers alive reliably.