Ich möchte ein Skript beim Systemstart in einer Debian 9-Box ausführen. Mein Skript funktioniert, wenn es eigenständig ausgeführt wird, aber unter Systemd fehlschlägt.System-Skript fehlgeschlagen
Mein Skript nur kopiert eine Sicherungsdatei von einem Remote-Server auf den lokalen Rechner:
#!/bin/sh
set -e
/usr/bin/sshpass -p "PASSWORD" /usr/bin/scp -p [email protected]:ORIGINPATH/backupserver.zip DESTINATIONPATH/backupserver/
Just for Privacy I Passwort ersetzt, Benutzer und Pfade oben.
Ich schrieb die folgende systemd Serviceeinheit:
[Unit]
Description=backup script
[Service]
Type=oneshot
ExecStart=PATH/backup.sh
[Install]
WantedBy=default.target
Dann habe ich Berechtigungen für das Skript:
chmod 744 PATH/backup.sh
und installierte den Dienst:
chmod 664 /etc/systemd/system/backup.service
systemctl daemon-reload
systemctl enable backup.service
Wenn ich den Neustart Skript schlägt fehl:
● 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)
Ergebnis 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'.
Was könnte falsch sein?
Nicht gerade eine Programmierfrage, oder? –
Das systemd-Journal sollte seine gesamte Ausgabe aufgezeichnet haben. Versuchen Sie 'journalctl -u backup' –
Und denken Sie daran, dass Sie nicht neu starten müssen, um einen Systemd-Job auszuführen. Lass es zuerst mit 'systemctl start backup' arbeiten. –