use init scripts somehow (I guess it varies between distributions)
Realmente. Aqui está a maneira do sistema, que não envolve scripts do System 5 rc
. São duas unidades. Como são unidades que não são de pacote, elas entram em /etc/systemd/system
. A primeira é uma unidade de serviço que descreve a execução do seu programa como um daemon:
# /etc/systemd/system/example-spooler.service
[Unit]
Description=Process files in /var/spool/example/
Documentation=http://unix.stackexchange.com/questions/203637/
[Service]
ExecStart=/usr/local/bin/example-spooler /var/spool/example/
Observe que você não precisa iniciar ou interromper explicitamente este serviço. É caminho ativado . A unidade de caminho que descreve o caminho que o systemd monitora e o que procura é o segundo arquivo de unidade:
# /etc/systemd/system/example-spooler.path
[Unit]
Description=Watch /var/spool/example/ and activate example-spooler.service
Documentation=http://unix.stackexchange.com/questions/203637/
[Path]
DirectoryNotEmpty=/var/spool/example/
[Install]
WantedBy=multi-user.target
Para iniciar automaticamente no bootstrap, execute systemctl preset example-spooler.path
. Para iniciá-lo agora, execute systemctl start example-spooler.path
.
Leitura adicional
- Lennart Poettering (2013-10-07).
systemd.path
. páginas de manual do systemd. freedesktop.org.