Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Systemd script fail

I want to run a script at system startup in a Debian 9 box. My script works when run standalone, but fails under systemd.

My script just copies a backup file from a remote server to the local machine:

#!/bin/sh
set -e

/usr/bin/sshpass -p "PASSWORD" /usr/bin/scp -p [email protected]:ORIGINPATH/backupserver.zip DESTINATIONPATH/backupserver/

Just for privacy I replaced password, user, and paths above.

I wrote the following systemd service unit:

[Unit]
Description=backup script

[Service]
Type=oneshot
ExecStart=PATH/backup.sh

[Install]
WantedBy=default.target

Then I set permissions for the script:

chmod 744 PATH/backup.sh

And installed the service:

chmod 664 /etc/systemd/system/backup.service
systemctl daemon-reload
systemctl enable backup.service

When I reboot the script fails:

● 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)

Result of 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'.

What could be wrong?

like image 605
Rodrigo Avatar asked May 13 '17 17:05

Rodrigo


Video Answer


1 Answers

Solved guys. There was 2 problems:

1 - I had to change the service unit file to make the service run only after network was up. The unit section was changed to:

 [Unit]
 Description = World server backup
 Wants = network-online.target
 After = network.target network-online.target

2 - The root user did not have the remote host added to the known host list, unlike the ordinary user I used to test the script.

like image 126
Rodrigo Avatar answered Nov 12 '22 03:11

Rodrigo