Converter script de inicialização para systemd - o caminho do executável não é absoluto

1

Eu estou tentando converter um dos meus scripts de init para systemd mas sem sucesso.

[Unit]
Description=My Service
After=network.target
Wants=mysql.service

[Service]
Type=oneshot
PIDFile=/var/run/MyService.pid
ExecStart=nohup /usr/local/bin/php -f /home/user/www/myservice.php > /dev/null 2>&1

[Install]
WantedBy=multi-user.target

A saída:

root@localserver [/etc/systemd/system]# service myservice restart
Redirecting to /bin/systemctl restart  myservice.service
Failed to restart myservice.service: Unit myservice.service failed to load: Invalid argument. See system logs and 'systemctl status myservice.service' for details.
root@localserver [/etc/systemd/system]# service myservice status
Redirecting to /bin/systemctl status  myservice.service
â myservice.service - My Service
   Loaded: error (Reason: Invalid argument)
   Active: activating (start) since Tue 2016-04-12 12:48:18 BST; 1min 9s ago
 Main PID: 22892 (php)
   CGroup: /system.slice/myservice.service
           ââ22892 /usr/local/bin/php -f /home/user/www/myservice.php

Apr 12 12:48:18 localserver systemd[1]: Starting My Service...
Apr 12 12:48:27 localserver systemd[1]: [/etc/systemd/system/myservice.service:9] Executable path is not absolute, ignoring: nohup /usr/local/bin/php -f /home/user/www/myservice.php > /dev/null 2>&1
Apr 12 12:48:27 localserver systemd[1]: myservice.service lacks both ExecStart= and ExecStop= setting. Refusing.
root@localserver [/etc/systemd/system]#

Alguma idéia porque não está funcionando?

Reado
fonte
Tem certeza de que precisa do nohupseu serviço quando executado sob o sytemd?
Eric Renouf

Respostas:

1

O systemd precisa de um caminho absoluto:

ExecStart=/usr/bin/nohup /usr/local/bin/php -f /home/user/www/myservice.php > /dev/null 2>&1
Shuangistan
fonte
Na verdade, tinha um, ironicamente. A presença de nohupestá errada. Assim é a tentativa de redirecionamento usando a sintaxe do shell.
JdeBP