Nachtrag:
Die "vermissten" services existieren auch unter openSUSE 12.3, allerdings liegen sie -genau so wie die ganzen Dateien von systemd- an anderer Stelle.
Alt:
Code:
/lib/systemd/system/
Dieses Verzeichnis existiert zwar noch, allerdings nur aus Kompatibilitätsgründen mit (älteren) Anwendungen, die ihre service-Dateien dann eben noch in diesem "legacy"-Verzeichnis ablegen können.
Neu:
Code:
/usr/lib/systemd/system/
Siehe:
Code:
ls -l /usr/lib/systemd/system/*local.service
-rw-r--r-- 1 root root 571 22. Apr 12:09 /usr/lib/systemd/system/halt-local.service
lrwxrwxrwx 1 root root 16 3. Mai 10:54 /usr/lib/systemd/system/local.service -> rc-local.service
-rw-r--r-- 1 root root 614 22. Apr 12:09 /usr/lib/systemd/system/rc-local.service
rpm -qf /usr/lib/systemd/system/*local.service
systemd-195-13.25.1.i586
systemd-195-13.25.1.i586
systemd-195-13.25.1.i586
Einzig das Problem, daß ein Aufruf eines weiteren Scripts in /etc/init.d/halt.local meist (nicht immer) nicht (mehr rechtzeitig, da der Shutdown mit systemd zu schnell ist?) ausgeführt wird, kann ich hier reproduzieren, aber auch da kann man nachhelfen.
1. Service Datei /etc/systemd/system/before-halt-local.service anlegen
Code:
# This file is part of systemd.
#
# systemd is free software; you can redistribute it and/or modify it
# under the terms of the GNU Lesser General Public License as published by
# the Free Software Foundation; either version 2.1 of the License, or
# (at your option) any later version.
[Unit]
Description=/etc/init.d/before.halt.local
ConditionFileIsExecutable=/etc/init.d/before.halt.local
DefaultDependencies=no
Before=shutdown.target reboot.target
[Service]
Type=oneshot
ExecStart=/etc/init.d/before.halt.local
TimeoutSec=0
StandardOutput=tty
RemainAfterExit=yes
[Install]
WantedBy=reboot.target shutdown.target
Die fett markierte Linie macht eigentlich genau das, was da steht.
"Dieser Service wird vor dem Shutdown/Reboot ausgeführt."
Das kann -je nachdem, wieviel und was da drin steht- logischerweise das Herunterfahren verlängern, aber nichts ist umsonst, sogar der Tod kostet das Leben.
Die letzte Linie ("WantedBy") sorgt dafür, daß der Service beim Herunterfahren/Neustarten ausgeführt wird.
2.Script /etc/init.d/before.halt.local anlegen, gewünschten Kram reinschreiben und ausführbar machen.
3. Service aktivieren
Code:
# systemctl enable before-halt-local.service
ln -s '/etc/systemd/system/before-halt-local.service' '/etc/systemd/system/reboot.target.wants/before-halt-local.service'
ln -s '/etc/systemd/system/before-halt-local.service' '/etc/systemd/system/shutdown.target.wants/before-halt-local.service'
Ét voilà.
Greetz,
RM
Lesezeichen