SystemMen - How to install Supervisor and manage process in Ubuntu 18? This article, I will guide you to use a tool called Supervisor.
This tool allows you to manage processes in Linux. Back in my previous article on MkDocs, you can see that when we run the
mkdocs serve command, the process only works at the command line.
So what if I exit the command line window? The process will stop working, we need it to work 24/7. So how?
At this point, we will need a tool that allows us to manage processes in Linux and that is the Supervisor.
Install Supervisor in Ubuntu 18.04
First, we need to install the dependencies.
# apt-get install python-setuptools -y
Next, use the following command to install Supervisor.
# sudo easy_install supervisor
Set up Supervisor service
Once the installation is completed, we need to create
conf.d directory to contain the Supervisor’s configuration files.
# sudo mkdir -p /etc/supervisor/conf.d
Run the following command to create a configuration file for the main Supervisor service.
# echo_supervisord_conf > /etc/supervisor/supervisord.conf
You open up
/etc/supervisor/supervisord.conf file and find the following paragraph.
;[include] ;files = relative/directory/*.ini
Edit it into below. The purpose of this is to declare the process management configuration files into the
conf.d directory, each process being a configuration file.
And save the configuration file.
Next, you need to create a service file for the Supervisor.
# nano /etc/systemd/system/supervisord.service
Copy the content below into the file and save it.
[Unit] Description=Supervisor daemon Documentation=http://supervisord.org After=network.target [Service] ExecStart=/usr/local/bin/supervisord -n -c /etc/supervisor/supervisord.conf ExecStop=/usr/local/bin/supervisorctl $OPTIONS shutdown ExecReload=/usr/local/bin/supervisorctl $OPTIONS reload KillMode=process Restart=on-failure RestartSec=42s [Install] WantedBy=multi-user.target Alias=supervisord.service
Reload the daemon service.
# systemctl daemon-reload
Now start the Supervisor service and check its status.
# systemctl start supervisord.service && systemctl status supervisord.service
Establish mkdocs process manager
In the article about mkdocs, we have the command to run the mkdocs service. Now, we will use the Supervisor to manage that process as a service, you can start, stop, status it.
/etc/supervisor/conf.d/supervisor_mkdocs.conf file with the following content.
[program:supervisor_mkdocs] process_name=mkdocs command=/home/source/venv/bin/mkdocs serve -a 0.0.0.0:8000 environment=PATH="/home/source/venv" directory=/home/source/ autostart=true autorestart=true stderr_logfile=/var/log/mkdocs/mkdocs.err.log stdout_logfile=/var/log/mkdocs/mkdocs.out.log
You change the information in accordance with your command and environment.
- program:supervisor_mkdocs: name your service, in this example is
- process_name: name your process, it’s optional.
- command: the command you want Supervisor manage.
- environment: define the environment of the command above in the configuration file. In my example, i run the program in virtualenv, so i have to define it here.
- directory: the working directory of this service.
Next, create the directory containing the log for the mkdocs service.
# mkdir /var/log/mkdocs
And then, you can use the below command to see if the Supervisor detected a newly configured process.
root@dev:/home# sudo supervisorctl reread supervisor_mkdocs: available
Then you can update it.
root@dev:/home# supervisorctl update supervisor_mkdocs: added process group
Or restart the Supervisor service.
# systemctl restart supervisord.service
And now, you can check if the mkdocs service is working with the following command.
root@dev:/home# sudo supervisorctl supervisor_mkdocs:mkdocs RUNNING pid 3270, uptime 4:27:22 supervisor>
So with this article, you already know how to use the Supervisor tool to manage processes in Linux. It helps you to set up some simple commands or scripts that run realtime as a daemon service.If you liked this article, then please subscribe to our YouTube Channel for more video tutorials. You can also find us on Twitter and Facebook.
If you appreciate what we share in this blog, you can support us by:
- Stay connected to: Facebook | Twitter | Google Plus | YouTube
- Subscribe email to recieve new posts from us: Sign up now.
- Start your own blog with SSD VPS - Free Let's Encrypt SSL ($2.5/month).
- Become a Supporter - Make a contribution via PayPal.
- Support us by purchasing Ribbon Lite Child theme being using on this website.
We are thankful for your support.