Alguns programas não são projetados para serem executados com a entrada contínua do usuário e desconectados do terminal na primeira oportunidade. Por exemplo, um servidor da Web responde a solicitações da Web, em vez de entradas do usuário. Servidores de email são outro exemplo desse tipo de aplicativo. Esses tipos de programas são conhecidos como daemons. O termo daemon vem da mitologia grega e representa uma entidade que não é boa nem má, e que invisivelmente realiza tarefas úteis. É por isso que o mascote do BSD é o daemon de aparência alegre com tênis e um tridente.
Vamos usar o upstart:
Crie um arquivo chamado: /etc/init/my-http-server.conf
description "my-http-server"
start on (filesystem)
stop on runlevel [016]
respawn
#setuid my_user_id
#setgid my_group_id
#chdir /opt/my/env
exec <your command>
pre-start script
mkdir -p /var/run/my/
chown -R my:www-data /var/run/my
end script
#post-start script
# sleep 6
# chmod 776 /var/run/my/.s.my
#end script
Para mais informações, consulte: documentos recentes .
Em seguida, use os comandos start
/ stop
/ restart
para controlar seu daemon:
$ start my-http-server
$ stop my-http-server
$ restart my-http-server
Para uma lista completa das opções disponíveis para fazer um processo do daemon no Ubuntu 16.04: veja aqui
EDIT 1: Eu tenho algumas informações adicionais: O Ubuntu 16.04 vem com systemd .
Então, a melhor prática é fazer um daemon systemd. porque o rc.d, o init.d e o upstart serão obsoletos muito em breve!.