Zoek:

Systemd Basics

Een eenvoudige systemd taak opzetten.

Voorbeeld zelf gedefinieerde service met systemd enabled system. Deze service dotask1 voert een custom defined script uit.

Maak eerst de bestanden dotask1.service en dosomething-1.sh, aan. Zie listing hieronder.

Doe dan als als normal user met sudo-recht:

sudo cp -i dotask1.service /etc/systemd/system/
chmod a+x dosomething-1.sh
sudo cp -i dosomething-1.sh /usr/local/bin/
sudo systemctl enable dotask1.service
sudo systemctl status dotask1

De task is inactive (dead), omdat de taak pas uitgevoerd wordt als het systeem down gaat.

Als er een reboot uitgevoerd wordt, wordt hiermee een regel in de logfile toegevoegd.

Als het goed is is er dan de file in de root-directory /dosomething-1.log Wat staat hierin?

Reboot (warm of koud) wederom en check of de dotask1 service er nog is, d.w.z. persistent is.

Listing van dotask1.service

## Update 22-07-2017 Linux Lab en xw4600-1
## URL 20-07-2017: http://userscripts4systemd.blogspot.nl
[Unit]
Description=Do something just before shutdown
DefaultDependencies=no
Before=shutdown.target reboot.target halt.target
# This works because it is installed in the target and will be
#   executed before the target state is entered
# Also consider kexec.target

[Service]
Type=oneshot
ExecStart=/usr/local/bin/dosomething-1.sh

[Install]
WantedBy=halt.target reboot.target shutdown.target

Listing van dosomething-1.sh

#!/bin/bash
version="ALPHA 2017.07.23 Linux Lab en xw4600-1"

scriptname="${0##*/}"

phrase1="done something just before shutdown..."
logger -s -t $scriptname "$phrase1"
sleep 5s
echo "$(date '+%Y-%m-%d %T') ${HOSTNAME}: $phrase1" >> /${scriptname%.sh}.log

Probeer bovenstaand script zo aan te passen dat het met het wall commando alle gebruikers waarschuwt dat het systeem down gaat.

Pagina laatst gewijzigd op 2 juli 2019 om 22:14