Demonizing a command means to make it run as a background process.
so when we have a command that we want to daemonize there are many ways to do it, most common methods are:
Most easiest seems to be using supervisor
Installing Supervisor and sample configuration file:
installing it in ubuntu or any Debian based system is as simple as
sudo apt-get install supervisor
now you can create your configurations in /etc/supervisor/conf.d/ folder with extension ".conf"
a simple configuration file at /etc/supervisor/conf.d/test-program.conf will look as
[program:]
command =
stdout_logfile =
stderr_logfile =
logfile_maxbytes = 50MB ; optional
logfile_backups = 10 ; needed if you want to rotate log files
user = root ; user as which the script should be executed
environment=variable1='value',variable2='value' ; environment variale to pass if any
Daemonizig the command:
supervisorctl reread
supervisorctl update
The first command re-reads the configuration files and detects any changes
The second command updates the supervisor process with the new or changed configurations.
Now you have daemonized the command as background process
Other useful commands:
Stopping a process:
sudo supervisorctl stop
sudo supervisorctl stop all
starting a process
sudo supervisorctl stop
restarting a process
sudo supervisorctl restart
sudo supervisorctl restart all