Je veux exécuter un script au démarrage du système dans une boîte Debian 9. Mon script fonctionne lorsqu'il est exécuté de manière autonome, mais échoue sous systemd.scénario Systemd échec
Mon script seulement copie un fichier de sauvegarde à partir d'un serveur distant sur la machine locale:
#!/bin/sh
set -e
/usr/bin/sshpass -p "PASSWORD" /usr/bin/scp -p [email protected]:ORIGINPATH/backupserver.zip DESTINATIONPATH/backupserver/
Juste pour la vie privée, j'ai remplacé le mot de passe, l'utilisateur et les chemins ci-dessus.
j'ai écrit l'unité de service systemd suivante:
[Unit]
Description=backup script
[Service]
Type=oneshot
ExecStart=PATH/backup.sh
[Install]
WantedBy=default.target
Ensuite, je configurer les autorisations pour le script:
chmod 744 PATH/backup.sh
et installé le service:
chmod 664 /etc/systemd/system/backup.service
systemctl daemon-reload
systemctl enable backup.service
Lorsque je redémarre la script échoue:
● backup.service - backup script
Loaded: loaded (/etc/systemd/system/backup.service; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Sat 2017-05-13 13:39:54 -03; 47min ago
Main PID: 591 (code=exited, status=1/FAILURE)
Résultat de journalctl -xe:
mai 16 23:34:27 rodrigo-acer systemd[1]: backup.service: Main process exited, code=exited, status=6/NOTCONFIGURED
mai 16 23:34:27 rodrigo-acer systemd[1]: Failed to start backup script.
mai 16 23:34:27 rodrigo-acer systemd[1]: backup.service: Unit entered failed state.
mai 16 23:34:27 rodrigo-acer systemd[1]: backup.service: Failed with result 'exit-code'.
Quoi de mal?
Pas exactement une question de programmation, est-il? –
Le journal systemd aurait dû enregistrer toutes ses sorties. Essayez 'journalctl -u backup' –
Et n'oubliez pas que vous n'avez pas besoin de redémarrer pour essayer d'exécuter un job systemd. Faites-le fonctionner avec 'systemctl start backup' en premier. –