Você pode usar o seguinte arquivo de unidade como modelo:
[Unit]
Description=A Test Service That Prints the date
After=network.target
[Service]
EnvironmentFile=-/etc/sysconfig/myservice
ExecStart=/usr/bin/bash -c "/usr/bin/date >> /now.txt" $MYSERVICE_ARGS
[Install]
WantedBy=multi-user.target
Salve em /etc/systemd/system/ com uma extensão de arquivo .service (por exemplo /etc/systemd/system/myservice.service )
Todas as variáveis de ambiente que são necessárias para o seu aplicativo podem ser colocadas em /etc/sysconfig/myservice , incluindo a criação de uma variável para manter suas opções de linha de comando:
MYSERVICE_ARGS=--posix
(Se você usar uma variável para as opções de linha de comando, adicione a variável ao seu comando em ExecStart da seguinte forma: ExecStart=/usr/local/bin/myservice $MYSERVICE_ARGS )
Teste com:
# systemctl start myservice
Agora você deve ter um arquivo /now.txt que tenha a data / hora anexada toda vez que isso for executado.
Ativar para iniciar na inicialização com:
# systemctl enable myservice
Agora, ele deve iniciar automaticamente depois que a rede aparecer.
Altere a linha ExecStart para executar seu aplicativo. Lembre-se que systemd não executa ExecStart em uma shell, portanto, se você precisar de redirecionamento, por exemplo, será necessário executar bash -c conforme o exemplo. Além disso, não haverá uma variável $PATH , portanto, use caminhos completos. O aplicativo será executado como usuário root .
Existem muito mais opções que você pode usar - leia a página de manual . Além disso, navegue pelos arquivos da unidade do seu sistema em /usr/lib/systemd/system .