Abhängigkeiten in /etc/insserv.conf.d/ einstellen

14/10/2012 - 01:11 von Thomas Wildgruber | Report spam
Hi Group,

ich bin etwas verwirrt bzgl. der Reihenfolge der Ausführung von
Init-Skripten in Debian. Ich habe ein Init-Skript, welches die ZFS-Pools
von ZFSonLinux einhàngt. Obwohl der Symlink in den Runlevels das Prefix
S01_ tràgt, werden beim Booten die ZFS-Pool erst ganz am Schluss
eingehàngt.

Jetzt bin ich kürzlich über die Boot-Facilities der LSB Header in den
Init-Skripten gestolpert und möchte nun eine Abhàngigkeit zwischen ZFS und
dem Boot-Facility $local_fs herstellen, damit ZFS als lokales Dateisystem
behandelt wird. Dabei bin ich auf folgendes Tutorial gestoßen:

http://wiki.debian.org/LSBInitScrip...Facilities

Die grundlegende Frage in diesem Zusammenhang wàre, ob ich mit einer Datei
'/etc/insserv.conf.d/zfs' mit folgenden Inhalt '$local_fs zfs' das ZFS zum
lokalen Dateisystem "befördern" kann?

Muss hierbei dann der Name des Inits-Skripts oder die Angabe aus dem
Provides-Tag des ZFS Init-Skripts verwendet werden? In diesem Fall ist zwar
beides gleich aber prinzipiell wàre dies schon ein Punkt, den ich lieber
abgeklàren würde...

snip
# cat /etc/init.d/zfs
#!/bin/bash
#
# zfs This script will mount/umount the zfs filesystems.
#
# chkconfig: 2345 01 99
# description: This script will mount/umount the zfs filesystems during
# system boot/shutdown. Configuration of which filesystems
# should be mounted is handled by the zfs 'mountpoint' and
# 'canmount' properties. See the zfs(8) man page for details.
# It is also responsible for all userspace zfs services.
#
### BEGIN INIT INFO
# Provides: zfs
# Required-Start: $local_fs
# Required-Stop: $local_fs
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Should-Stop:
# Short-Description: Mount/umount the zfs filesystems
# Description: ZFS is an advanced filesystem designed to simplify managing
# and protecting your data. This service mounts the ZFS
# filesystems and starts all related zfs services.
### END INIT INFO
snap

Muss im Anschluss das 'insserv' Komando ohne weitere Argumente ausgeführt
werden? (Hab ich irgendwann mal so gesehen) Wenn ja, was macht das dann an
dieser Stelle?

Thx & Bye Tom
"Manches Gewissen ist nur rein, weil es nie benutzt wurde" (Robert Lembke)
 

Lesen sie die antworten

#1 Christoph Mehdorn Weber
04/02/2013 - 15:48 | Warnen spam
Hallo!

* Thomas Wildgruber :

Die grundlegende Frage in diesem Zusammenhang wàre, ob ich mit einer Datei
'/etc/insserv.conf.d/zfs' mit folgenden Inhalt '$local_fs zfs' das ZFS zum
lokalen Dateisystem "befördern" kann?



Eine gute Frage. Aus der Manpage kann ich nicht herauslesen, ob
$local_fs dann erweitert oder überschrieben wird.

Sofern du die Datei "/etc/insserv.conf.d/zfs" übrigens nicht ins
zfs-Paket einbauen willst, solltest du "+zfs" benutzen. Ansonsten
kann es Probleme geben, falls du das Init-Script mal entfernst.

Muss hierbei dann der Name des Inits-Skripts oder die Angabe aus dem
Provides-Tag des ZFS Init-Skripts verwendet werden?



Soweit mir bekannt ist, ist der Name des Scripts Schall und
Rauch. Lokal bestàtigt "mountall.sh" diese Meinung:
| # Provides: mountall


Ein Ansatz wàre es, wenn du das mal vorsichtig testest und oben
deine zfs-Datei erstellst und danach insserv aufrufst:

| insserv -nv

Dann sollte es dir ausgeben, was es tun würde. Wenn dann
plötzlich die bisherigen "$local_fs"-Scripte (bei mir mountall,
mountoverflowtmp und umountfs) nach hinten umziehen, war der
Ansatz wohl nicht so gut.

Dank "-n" wird aber nur simuliert, d.h. du kannst deine
zfs-Datei wieder entfernen und fertig.

Eventuell will man noch "-d" benutzen, um die Standardwerte für
alle Scripte herzustellen. Wenn man nie manuell gefummelt hat,
sollte das aber nichts bewirken.


Ansonsten könntest du mal "X-Start-Before:" ausprobieren, um es
vor einem Script anzusiedeln, daß dein ZFS wirklich benötigt,
siehe: <http://wiki.debian.org/LSBInitScrip...ne-103>


Muss im Anschluss das 'insserv' Komando ohne weitere Argumente ausgeführt
werden? (Hab ich irgendwann mal so gesehen) Wenn ja, was macht das dann an
dieser Stelle?



Die Manpage sagt: Ohne Argumente bzw. nur mit Pfad zum
Init-Verzeichnis werden die Init-Scripts ggf. neu sortiert,
aber keine hinzugefügt oder entfernt.

Mit Initscript als Argument wird dieses mit Standardwerten
hinzugefügt. Wahlweise kann man die Werte mit angeben, um den
Stardard zu überschreiben.

Und kommt zum Initscript noch ein "-r" dazu, wird das Script
entfernt.


Wobei ich zugeben muß, daß ich bei Debian meist update-rc.d
benutze (da gibt es auch "-n"). Das benötigt allerdings einen
Scriptnamen, der Aufruf könnte daher so aussehen:

| update-rc.d -n zfs defaults

Christoph

"Tod durch Lungenkrebs kann ihre Gesundheit beeintraechtigen!"
(Bodo Eggert)

Ähnliche fragen