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 it in ubuntu or any Debian based system is as simple as
sudo apt-get install supervisornow 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 anysupervisorctl reread
supervisorctl updateThe 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
Stopping a process:
sudo supervisorctl stop
sudo supervisorctl stop allstarting a process
sudo supervisorctl stoprestarting a process
sudo supervisorctl restart
sudo supervisorctl restart all