On Sat, May 16, 2020 at 01:41:00PM +0200, Luuk wrote: > On 15-5-2020 22:42, Geert Stappers wrote: > > Hoi, > > > > Mijn websearch schiet niet op. Ik vond wel > > How do you configure multiple systemd services to use one timer? > > > > Wat ik zoek is er meer > > how configure multiple systemd timers to use same systemd service > > > > > > Met cron zou het iets zijn als > > > > #m h d m day > > * 7 * * Mon-Sat periodiekejob dagelijks > > * 5 * * Sun periodiekejob wekelijks > > 0 * * * * periodiekejob elkuur > > > > > > Met systemd heb ik dan drie timers en drie service files nodig. > > > > De drie service files verschillen alleen in de paramater. > > En dat is wat ik graag zou willen voorkomen, beheer van vrijwel > > gelijke bestanden, die vrijwel gelijk gehouden moeten worden. > > > > > > Wat ik dan doen, > > is periodejob naar een environment variable laten kijken. > > (in service file kun je Environment zetten) > > > > Van > > https://stackoverflow.com/questions/40083540/how-can-i-use-environment-variable-in-systemd-timer-unit > > heb ik: "there's no mention of environment variables for systemd timers" > > > > > > Wat hebben jullie aan ideeen? > > (Ja, dat mogen ook gekke ideeen zijn om zo nieuwe mogelijkheden te zien) > > > > Kan je niet die afhankelijkheden die je nu on `cron` wilt stoppen in het > scriptje `periodiekejob` zetten? > > Zodat het scriptje op Zondagen tussen 05:00 en 05:59:59 de "wekelijkse" > activiteit doet, en op werkdagen tussen 07:00 en 07:59:59 de "dagelijkse" > activiteiten, en verder op de hele uren de "elkuur" activiteit". >
Met bij-effect dat laten starten op een ander moment
ook het script aangepast moet worden.
Deze richting ben ik nu aan het denken.
( in de tarball staat hetzelfde )
==> README.md <==
Proof of concept of several systemd timers
starting the same systemd service
sudo make install
journalctl -fu rapporteer
sudo make deinstall
# l l
==> Makefile <==
#
all:
@echo nothing to build ...
install:
cp rapporteer /usr/local/bin/
cp rapporteerA.timer /etc/systemd/system/
cp rapporteerB.timer /etc/systemd/system/
cp rapporteer.service /etc/systemd/system/
systemctl daemon-reload
systemctl start rapporteerA.timer
systemctl start rapporteerB.timer
deinstall:
systemctl stop rapporteerA.timer
systemctl stop rapporteerB.timer
rm -f /usr/local/bin/rapporteer
rm -f /etc/systemd/system/rapporteerA.timer
rm -f /etc/systemd/system/rapporteerB.timer
rm -f /etc/systemd/system/rapporteer.service
systemctl daemon-reload
tarball:
mkdir rapporteerpoc
-cp * rapporteerpoc/
rm -f rapporteerpoc/*.tgz
tar czf rapporteerpoc.tgz rapporteerpoc/
rm -rf rapporteerpoc
clean:
rm -f rapporteerpoc.tgz
# l l
==> rapporteer.service <==
[Unit]
Description=rapporteer POC, several timers will start us
[Service]
Type=oneshot
Environment=RAPPORTEER
ExecStart=/usr/local/bin/rapporteer
[Install]
WantedBy=multi-user.target
# l l
==> rapporteer <==
#!/usr/bin/python3
'''
rapporteer
Proof Of Concept for handing over parameter
through environment variables
'''
import os
if os.getenv('RAPPORTEER'):
parameter = os.getenv('RAPPORTEER')
else:
parameter = "not_present"
print("parameter value is {}".format(parameter))
# l l
==> rapporteerA.timer <==
[Unit]
Description=Rapporteer Proof of concept
Environment=RAPPORTEER=tien
[Timer]
Unit=rapporteer.service
OnCalendar=*-*-* *:*:10,30,50
[Install]
WantedBy=timers.target
# l l
==> rapporteerB.timer <==
[Unit]
Description=Rapporteer Proof of concept
Environment=RAPPORTEER=twaalf
[Timer]
Unit=rapporteer.service
OnCalendar=*-*-* *:*:12,32,52
[Install]
WantedBy=timers.target
# l l
Groeten
Geert Stappers
--
Silence is hard to parse
rapporteerpoc.tgz
Description: application/gtar-compressed
