summaryrefslogtreecommitdiffstats
path: root/files/etc/systemd/system/geodata-download@.service
blob: 2a8c940079eaa1dbd89de0ceec2318c833d511e8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
[Unit]
Description=Geodata updater service (download ‘%I’)
# Chaining logic from https://serverfault.com/questions/1079993/why-does-my-systemd-timer-only-trigger-once-when-the-unit-is-a-target#answer-1128671
# XXX Looks like Upholds= prevents running a single unit, as it causes
# geodata-update@%i.target to start upon `systemctl start geodata-download@foo.service`
After=network-online.target geodata-update@%i.target
Upholds=geodata-update@%i.target

[Service]
User=_geodata-download
Group=_geodata

Nice=15
IOSchedulingClass=idle

Type=oneshot
ExecStart=/usr/local/bin/geodata-download \
    --cachedir=%C/geodata \
    --lockdir=%t/lock/geodata/cache \
    --no-exit-code \
    --quiet \
    -- %I

# Hardening
NoNewPrivileges=yes
ProtectHome=yes
ProtectSystem=strict
PrivateDevices=yes
ProtectControlGroups=yes
ProtectKernelModules=yes
ProtectKernelTunables=yes
RestrictAddressFamilies=AF_UNIX AF_INET AF_INET6
ReadWritePaths=%C/geodata
ReadWritePaths=%t/lock/geodata/cache

[Install]
WantedBy=geodata-update@%i.target