I’m trying to move away from cron jobs, not that they don’t work, but I want to get on with the times and also learn some things.
I created two user timers (and the associated services), one for backing up my data and the second to upload to B2. I’m using two scripts I had in my cron jobs for a few years and they worked without problems. But with systemd timers both scripts fail with exit code 15 (process terminated) and I have no idea why.
I run Debian 12 Bookworm.
Here’s the output for the status of the upload service:
> systemctl --user status rclone-up.service
○ rclone-up.service - Run rclone up for b2
Loaded: loaded (/home/clmbmb/.config/systemd/user/rclone-up.service; disabled; preset: enabled)
Active: inactive (dead)
TriggeredBy: ● rclone-up.timer
Apr 11 06:10:39 tesla systemd[1698218]: Starting rclone-up.service - Run rclone up for b2...
Apr 11 06:12:18 tesla systemd[1698218]: rclone-up.service: Main process exited, code=killed, status=15/TERM
Apr 11 06:12:18 tesla systemd[1698218]: rclone-up.service: Failed with result 'signal'.
Apr 11 06:12:18 tesla systemd[1698218]: Stopped rclone-up.service - Run rclone up for b2.
Apr 11 06:12:18 tesla systemd[1698218]: rclone-up.service: Consumed 12.811s CPU time.
Also, here’s the log created by rclone
while running:
2024/04/11 06:10:42 INFO : integrity.2376: Copied (new)
2024/04/11 06:10:43 INFO : hints.2376: Copied (new)
2024/04/11 06:10:43 INFO : nonce: Copied (replaced existing)
2024/04/11 06:10:47 INFO : config: Updated modification time in destination
2024/04/11 06:10:55 INFO : index.2376: Copied (new)
2024/04/11 06:11:40 INFO :
Transferred: 443.104 MiB / 2.361 GiB, 18%, 16.475 MiB/s, ETA 1m59s
Checks: 1503 / 1503, 100%
Transferred: 4 / 19, 21%
Elapsed time: 1m0.8s
Transferring:
* data/2/2328: 19% /502.259Mi, 2.904Mi/s, 2m19s
* data/2/2329: 52% /500.732Mi, 10.758Mi/s, 22s
* data/2/2330: 14% /501.598Mi, 3.150Mi/s, 2m15s
* data/2/2331: 0% /500.090Mi, 0/s, -
2024/04/11 06:12:18 INFO : Signal received: terminated
Where should I look to get some more information about what’s going on? Why would the service be terminated like that?
LE:
Setting TimeoutSec=infinity
inside the [Service]
section of the unit file seems to help. Not 100% if it’s a good idea, but I’ll experiment with it.
I think I read something about there being timeouts for slow jobs, which backups definitely are. Really unsure though, it has been a while. Try spawning independent worker programs!
I just read a bit some internet posts and the documentation. I set
TimeoutSec=infinity
inside the service and I set the timer to run it now. I’ll see if that helps.