init Stop-Skript in Squeeze

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
BeS
Moderator
Beiträge: 3236
Registriert: 17.04.2002 18:30:21
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Stuttgart
Kontaktdaten:

init Stop-Skript in Squeeze

Beitrag von BeS » 16.01.2011 21:18:04

Hallo,

in Squeeze wurde ja auf ein neues init System umgestellt, welches es ermöglicht Skripte beim Start parallel auszuführen. Seitdem funktioniert mein eigenes Stop-Skript nicht mehr.

Das Skript soll einmal pro Woche ein Backup von meiner Home-Partition machen. Es sollte also als erstes Skript beim Shutdown ausgeführt werden und alle anderen sollen warten bis das Backup fertig ist. Ich konnte bisher nichts genaues finden, ob die Shutdown-Skripte nun auch parallel ausgeführt werden, aber dies könnte natürlich zu einem großen Problem für mein Backup-Skript werden. Fürs erste wäre ich aber froh, wenn es überhaupt wieder ausgeführt wurde. Bisher lag es einfach in /etc/rc0.d/K01backup.sh

Hat hier jemand schon Erfahrung mit dem neuen Init-System? Kennt ihr eine gute Dokumentation? Wie kann ich mein Backup-Skript hier einbinden?

Danke!
Deine Unterstützung für Freie Software kostet dich nur wenige Minuten: www.fsfe.org/support

Ich spreche von Freier Software!

Benutzeravatar
Saxman
Beiträge: 4233
Registriert: 02.05.2005 21:53:52
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: localhost

Re: init Stop-Skript in Squeeze

Beitrag von Saxman » 16.01.2011 21:40:38

Die Skripte können im Grunde so bleiben wie sie sind, es muss nur ein LSB header hinzugefügt werden.

Bsp:

Code: Alles auswählen

### BEGIN INIT INFO
# Provides:          skeleton
# Required-Start:    $remote_fs $syslog
# Required-Stop:     $remote_fs $syslog
# Should-Start:      $portmap
# Should-Stop:       $portmap
# X-Start-Before:    nis
# X-Stop-After:      nis
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# X-Interactive:     true
# Short-Description: Example initscript
# Description:       This file should be used to construct scripts to be
#                    placed in /etc/init.d.
### END INIT INFO
Mehr Infos gibt es unter
/etc/init.d/README und /usr/share/doc/sysv-rc

Bei mir ging das Anpassen stressfrei von statten.
"Unix is simple. It just takes a genius to understand its simplicity." - Dennis Ritchie

Debian GNU/Linux Anwenderhandbuch | df.de Verhaltensregeln | Anleitungen zum Review und zum Verfassen von Wiki Artikeln.

Benutzeravatar
BeS
Moderator
Beiträge: 3236
Registriert: 17.04.2002 18:30:21
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Stuttgart
Kontaktdaten:

Re: init Stop-Skript in Squeeze

Beitrag von BeS » 16.01.2011 22:52:33

Danke für den Tipp. Ich habe jetzt mal den Header angepasst und eingebunden. Leider wird das Skript immer noch nicht ausgeführt wenn ich es in rc0.d verlinke. An anderer Stelle hier im Forum habe ich gelesen, dass man die Scripte mit "insserv" einbinden soll. Ich hab da zum Glück erst mal ein "dry-run" versucht (insserv -n backup.sh), der will dann nämlich mein ganzes init System umschreiben:

Code: Alles auswählen

# insserv -n backup.sh 
insserv: enable service ../init.d/backup.sh -> /etc/init.d/../rc0.d/K01backup.sh
insserv: remove service /etc/init.d/../rc1.d/S24bootlogs
insserv: enable service ../init.d/bootlogs -> /etc/init.d/../rc1.d/S25bootlogs
insserv: remove service /etc/init.d/../rc1.d/S25single
insserv: enable service ../init.d/single -> /etc/init.d/../rc1.d/S26single
insserv: enable service ../init.d/backup.sh -> /etc/init.d/../rc1.d/K01backup.sh
insserv: remove service /etc/init.d/../rc2.d/S23avahi-daemon
insserv: enable service ../init.d/avahi-daemon -> /etc/init.d/../rc2.d/S24avahi-daemon
insserv: remove service /etc/init.d/../rc2.d/S22dbus
insserv: enable service ../init.d/dbus -> /etc/init.d/../rc2.d/S23dbus
insserv: remove service /etc/init.d/../rc2.d/S24saned
insserv: enable service ../init.d/saned -> /etc/init.d/../rc2.d/S25saned
insserv: remove service /etc/init.d/../rc2.d/S23gdm3
insserv: enable service ../init.d/gdm3 -> /etc/init.d/../rc2.d/S24gdm3
insserv: remove service /etc/init.d/../rc2.d/S23bluetooth
insserv: enable service ../init.d/bluetooth -> /etc/init.d/../rc2.d/S24bluetooth
insserv: remove service /etc/init.d/../rc2.d/S24pcscd
insserv: enable service ../init.d/pcscd -> /etc/init.d/../rc2.d/S25pcscd
insserv: remove service /etc/init.d/../rc2.d/S23hal
insserv: enable service ../init.d/hal -> /etc/init.d/../rc2.d/S24hal
insserv: remove service /etc/init.d/../rc2.d/S22chrony
insserv: enable service ../init.d/chrony -> /etc/init.d/../rc2.d/S23chrony
insserv: remove service /etc/init.d/../rc2.d/S23postfix
insserv: enable service ../init.d/postfix -> /etc/init.d/../rc2.d/S24postfix
insserv: remove service /etc/init.d/../rc2.d/S22spamassassin
insserv: enable service ../init.d/spamassassin -> /etc/init.d/../rc2.d/S23spamassassin
insserv: remove service /etc/init.d/../rc2.d/S22anacron
insserv: enable service ../init.d/anacron -> /etc/init.d/../rc2.d/S23anacron
insserv: remove service /etc/init.d/../rc2.d/S22kerneloops
insserv: enable service ../init.d/kerneloops -> /etc/init.d/../rc2.d/S23kerneloops
insserv: remove service /etc/init.d/../rc2.d/S22openbsd-inetd
insserv: enable service ../init.d/openbsd-inetd -> /etc/init.d/../rc2.d/S23openbsd-inetd
insserv: remove service /etc/init.d/../rc2.d/S22atd
insserv: enable service ../init.d/atd -> /etc/init.d/../rc2.d/S23atd
insserv: remove service /etc/init.d/../rc2.d/S22dovecot
insserv: enable service ../init.d/dovecot -> /etc/init.d/../rc2.d/S23dovecot
insserv: remove service /etc/init.d/../rc2.d/S24bootlogs
insserv: enable service ../init.d/bootlogs -> /etc/init.d/../rc2.d/S25bootlogs
insserv: remove service /etc/init.d/../rc2.d/S24cups
insserv: enable service ../init.d/cups -> /etc/init.d/../rc2.d/S25cups
insserv: remove service /etc/init.d/../rc2.d/S22acpid
insserv: enable service ../init.d/acpid -> /etc/init.d/../rc2.d/S23acpid
insserv: remove service /etc/init.d/../rc2.d/S22cron
insserv: enable service ../init.d/cron -> /etc/init.d/../rc2.d/S23cron
insserv: remove service /etc/init.d/../rc2.d/S25stop-bootlogd
insserv: enable service ../init.d/stop-bootlogd -> /etc/init.d/../rc2.d/S26stop-bootlogd
insserv: remove service /etc/init.d/../rc2.d/S25rc.local
insserv: enable service ../init.d/rc.local -> /etc/init.d/../rc2.d/S26rc.local
insserv: remove service /etc/init.d/../rc2.d/S22rsync
insserv: enable service ../init.d/rsync -> /etc/init.d/../rc2.d/S23rsync
insserv: remove service /etc/init.d/../rc2.d/S22ssh
insserv: enable service ../init.d/ssh -> /etc/init.d/../rc2.d/S23ssh
insserv: remove service /etc/init.d/../rc2.d/S25rmnologin
insserv: enable service ../init.d/rmnologin -> /etc/init.d/../rc2.d/S26rmnologin
insserv: remove service /etc/init.d/../rc2.d/S23cpufrequtils
insserv: enable service ../init.d/cpufrequtils -> /etc/init.d/../rc2.d/S24cpufrequtils
insserv: remove service /etc/init.d/../rc2.d/S22loadcpufreq
insserv: enable service ../init.d/loadcpufreq -> /etc/init.d/../rc2.d/S23loadcpufreq
insserv: enable service ../init.d/backup.sh -> /etc/init.d/../rc2.d/S22backup.sh
insserv: remove service /etc/init.d/../rc3.d/S23avahi-daemon
insserv: enable service ../init.d/avahi-daemon -> /etc/init.d/../rc3.d/S24avahi-daemon
insserv: remove service /etc/init.d/../rc3.d/S22dbus
insserv: enable service ../init.d/dbus -> /etc/init.d/../rc3.d/S23dbus
insserv: remove service /etc/init.d/../rc3.d/S24saned
insserv: enable service ../init.d/saned -> /etc/init.d/../rc3.d/S25saned
insserv: remove service /etc/init.d/../rc3.d/S23gdm3
insserv: enable service ../init.d/gdm3 -> /etc/init.d/../rc3.d/S24gdm3
insserv: remove service /etc/init.d/../rc3.d/S23bluetooth
insserv: enable service ../init.d/bluetooth -> /etc/init.d/../rc3.d/S24bluetooth
insserv: remove service /etc/init.d/../rc3.d/S24pcscd
insserv: enable service ../init.d/pcscd -> /etc/init.d/../rc3.d/S25pcscd
insserv: remove service /etc/init.d/../rc3.d/S23hal
insserv: enable service ../init.d/hal -> /etc/init.d/../rc3.d/S24hal
insserv: remove service /etc/init.d/../rc3.d/S22chrony
insserv: enable service ../init.d/chrony -> /etc/init.d/../rc3.d/S23chrony
insserv: remove service /etc/init.d/../rc3.d/S23postfix
insserv: enable service ../init.d/postfix -> /etc/init.d/../rc3.d/S24postfix
insserv: remove service /etc/init.d/../rc3.d/S22spamassassin
insserv: enable service ../init.d/spamassassin -> /etc/init.d/../rc3.d/S23spamassassin
insserv: remove service /etc/init.d/../rc3.d/S22anacron
insserv: enable service ../init.d/anacron -> /etc/init.d/../rc3.d/S23anacron
insserv: remove service /etc/init.d/../rc3.d/S22kerneloops
insserv: enable service ../init.d/kerneloops -> /etc/init.d/../rc3.d/S23kerneloops
insserv: remove service /etc/init.d/../rc3.d/S22openbsd-inetd
insserv: enable service ../init.d/openbsd-inetd -> /etc/init.d/../rc3.d/S23openbsd-inetd
insserv: remove service /etc/init.d/../rc3.d/S22atd
insserv: enable service ../init.d/atd -> /etc/init.d/../rc3.d/S23atd
insserv: remove service /etc/init.d/../rc3.d/S22dovecot
insserv: enable service ../init.d/dovecot -> /etc/init.d/../rc3.d/S23dovecot
insserv: remove service /etc/init.d/../rc3.d/S24bootlogs
insserv: enable service ../init.d/bootlogs -> /etc/init.d/../rc3.d/S25bootlogs
insserv: remove service /etc/init.d/../rc3.d/S24cups
insserv: enable service ../init.d/cups -> /etc/init.d/../rc3.d/S25cups
insserv: remove service /etc/init.d/../rc3.d/S22acpid
insserv: enable service ../init.d/acpid -> /etc/init.d/../rc3.d/S23acpid
insserv: remove service /etc/init.d/../rc3.d/S22cron
insserv: enable service ../init.d/cron -> /etc/init.d/../rc3.d/S23cron
insserv: remove service /etc/init.d/../rc3.d/S25stop-bootlogd
insserv: enable service ../init.d/stop-bootlogd -> /etc/init.d/../rc3.d/S26stop-bootlogd
insserv: remove service /etc/init.d/../rc3.d/S25rc.local
insserv: enable service ../init.d/rc.local -> /etc/init.d/../rc3.d/S26rc.local
insserv: remove service /etc/init.d/../rc3.d/S22rsync
insserv: enable service ../init.d/rsync -> /etc/init.d/../rc3.d/S23rsync
insserv: remove service /etc/init.d/../rc3.d/S22ssh
insserv: enable service ../init.d/ssh -> /etc/init.d/../rc3.d/S23ssh
insserv: remove service /etc/init.d/../rc3.d/S25rmnologin
insserv: enable service ../init.d/rmnologin -> /etc/init.d/../rc3.d/S26rmnologin
insserv: remove service /etc/init.d/../rc3.d/S23cpufrequtils
insserv: enable service ../init.d/cpufrequtils -> /etc/init.d/../rc3.d/S24cpufrequtils
insserv: remove service /etc/init.d/../rc3.d/S22loadcpufreq
insserv: enable service ../init.d/loadcpufreq -> /etc/init.d/../rc3.d/S23loadcpufreq
insserv: enable service ../init.d/backup.sh -> /etc/init.d/../rc3.d/S22backup.sh
insserv: remove service /etc/init.d/../rc4.d/S23avahi-daemon
insserv: enable service ../init.d/avahi-daemon -> /etc/init.d/../rc4.d/S24avahi-daemon
insserv: remove service /etc/init.d/../rc4.d/S22dbus
insserv: enable service ../init.d/dbus -> /etc/init.d/../rc4.d/S23dbus
insserv: remove service /etc/init.d/../rc4.d/S24saned
insserv: enable service ../init.d/saned -> /etc/init.d/../rc4.d/S25saned
insserv: remove service /etc/init.d/../rc4.d/S23gdm3
insserv: enable service ../init.d/gdm3 -> /etc/init.d/../rc4.d/S24gdm3
insserv: remove service /etc/init.d/../rc4.d/S23bluetooth
insserv: enable service ../init.d/bluetooth -> /etc/init.d/../rc4.d/S24bluetooth
insserv: remove service /etc/init.d/../rc4.d/S24pcscd
insserv: enable service ../init.d/pcscd -> /etc/init.d/../rc4.d/S25pcscd
insserv: remove service /etc/init.d/../rc4.d/S23hal
insserv: enable service ../init.d/hal -> /etc/init.d/../rc4.d/S24hal
insserv: remove service /etc/init.d/../rc4.d/S22chrony
insserv: enable service ../init.d/chrony -> /etc/init.d/../rc4.d/S23chrony
insserv: remove service /etc/init.d/../rc4.d/S23postfix
insserv: enable service ../init.d/postfix -> /etc/init.d/../rc4.d/S24postfix
insserv: remove service /etc/init.d/../rc4.d/S22spamassassin
insserv: enable service ../init.d/spamassassin -> /etc/init.d/../rc4.d/S23spamassassin
insserv: remove service /etc/init.d/../rc4.d/S22anacron
insserv: enable service ../init.d/anacron -> /etc/init.d/../rc4.d/S23anacron
insserv: remove service /etc/init.d/../rc4.d/S22kerneloops
insserv: enable service ../init.d/kerneloops -> /etc/init.d/../rc4.d/S23kerneloops
insserv: remove service /etc/init.d/../rc4.d/S22openbsd-inetd
insserv: enable service ../init.d/openbsd-inetd -> /etc/init.d/../rc4.d/S23openbsd-inetd
insserv: remove service /etc/init.d/../rc4.d/S22atd
insserv: enable service ../init.d/atd -> /etc/init.d/../rc4.d/S23atd
insserv: remove service /etc/init.d/../rc4.d/S22dovecot
insserv: enable service ../init.d/dovecot -> /etc/init.d/../rc4.d/S23dovecot
insserv: remove service /etc/init.d/../rc4.d/S24bootlogs
insserv: enable service ../init.d/bootlogs -> /etc/init.d/../rc4.d/S25bootlogs
insserv: remove service /etc/init.d/../rc4.d/S24cups
insserv: enable service ../init.d/cups -> /etc/init.d/../rc4.d/S25cups
insserv: remove service /etc/init.d/../rc4.d/S22acpid
insserv: enable service ../init.d/acpid -> /etc/init.d/../rc4.d/S23acpid
insserv: remove service /etc/init.d/../rc4.d/S22cron
insserv: enable service ../init.d/cron -> /etc/init.d/../rc4.d/S23cron
insserv: remove service /etc/init.d/../rc4.d/S25stop-bootlogd
insserv: enable service ../init.d/stop-bootlogd -> /etc/init.d/../rc4.d/S26stop-bootlogd
insserv: remove service /etc/init.d/../rc4.d/S25rc.local
insserv: enable service ../init.d/rc.local -> /etc/init.d/../rc4.d/S26rc.local
insserv: remove service /etc/init.d/../rc4.d/S22rsync
insserv: enable service ../init.d/rsync -> /etc/init.d/../rc4.d/S23rsync
insserv: remove service /etc/init.d/../rc4.d/S22ssh
insserv: enable service ../init.d/ssh -> /etc/init.d/../rc4.d/S23ssh
insserv: remove service /etc/init.d/../rc4.d/S25rmnologin
insserv: enable service ../init.d/rmnologin -> /etc/init.d/../rc4.d/S26rmnologin
insserv: remove service /etc/init.d/../rc4.d/S23cpufrequtils
insserv: enable service ../init.d/cpufrequtils -> /etc/init.d/../rc4.d/S24cpufrequtils
insserv: remove service /etc/init.d/../rc4.d/S22loadcpufreq
insserv: enable service ../init.d/loadcpufreq -> /etc/init.d/../rc4.d/S23loadcpufreq
insserv: enable service ../init.d/backup.sh -> /etc/init.d/../rc4.d/S22backup.sh
insserv: remove service /etc/init.d/../rc5.d/S23avahi-daemon
insserv: enable service ../init.d/avahi-daemon -> /etc/init.d/../rc5.d/S24avahi-daemon
insserv: remove service /etc/init.d/../rc5.d/S22dbus
insserv: enable service ../init.d/dbus -> /etc/init.d/../rc5.d/S23dbus
insserv: remove service /etc/init.d/../rc5.d/S24saned
insserv: enable service ../init.d/saned -> /etc/init.d/../rc5.d/S25saned
insserv: remove service /etc/init.d/../rc5.d/S23gdm3
insserv: enable service ../init.d/gdm3 -> /etc/init.d/../rc5.d/S24gdm3
insserv: remove service /etc/init.d/../rc5.d/S23bluetooth
insserv: enable service ../init.d/bluetooth -> /etc/init.d/../rc5.d/S24bluetooth
insserv: remove service /etc/init.d/../rc5.d/S24pcscd
insserv: enable service ../init.d/pcscd -> /etc/init.d/../rc5.d/S25pcscd
insserv: remove service /etc/init.d/../rc5.d/S23hal
insserv: enable service ../init.d/hal -> /etc/init.d/../rc5.d/S24hal
insserv: remove service /etc/init.d/../rc5.d/S22chrony
insserv: enable service ../init.d/chrony -> /etc/init.d/../rc5.d/S23chrony
insserv: remove service /etc/init.d/../rc5.d/S23postfix
insserv: enable service ../init.d/postfix -> /etc/init.d/../rc5.d/S24postfix
insserv: remove service /etc/init.d/../rc5.d/S22spamassassin
insserv: enable service ../init.d/spamassassin -> /etc/init.d/../rc5.d/S23spamassassin
insserv: remove service /etc/init.d/../rc5.d/S22anacron
insserv: enable service ../init.d/anacron -> /etc/init.d/../rc5.d/S23anacron
insserv: remove service /etc/init.d/../rc5.d/S22kerneloops
insserv: enable service ../init.d/kerneloops -> /etc/init.d/../rc5.d/S23kerneloops
insserv: remove service /etc/init.d/../rc5.d/S22openbsd-inetd
insserv: enable service ../init.d/openbsd-inetd -> /etc/init.d/../rc5.d/S23openbsd-inetd
insserv: remove service /etc/init.d/../rc5.d/S22atd
insserv: enable service ../init.d/atd -> /etc/init.d/../rc5.d/S23atd
insserv: remove service /etc/init.d/../rc5.d/S22dovecot
insserv: enable service ../init.d/dovecot -> /etc/init.d/../rc5.d/S23dovecot
insserv: remove service /etc/init.d/../rc5.d/S24bootlogs
insserv: enable service ../init.d/bootlogs -> /etc/init.d/../rc5.d/S25bootlogs
insserv: remove service /etc/init.d/../rc5.d/S24cups
insserv: enable service ../init.d/cups -> /etc/init.d/../rc5.d/S25cups
insserv: remove service /etc/init.d/../rc5.d/S22acpid
insserv: enable service ../init.d/acpid -> /etc/init.d/../rc5.d/S23acpid
insserv: remove service /etc/init.d/../rc5.d/S22cron
insserv: enable service ../init.d/cron -> /etc/init.d/../rc5.d/S23cron
insserv: remove service /etc/init.d/../rc5.d/S25stop-bootlogd
insserv: enable service ../init.d/stop-bootlogd -> /etc/init.d/../rc5.d/S26stop-bootlogd
insserv: remove service /etc/init.d/../rc5.d/S25rc.local
insserv: enable service ../init.d/rc.local -> /etc/init.d/../rc5.d/S26rc.local
insserv: remove service /etc/init.d/../rc5.d/S22rsync
insserv: enable service ../init.d/rsync -> /etc/init.d/../rc5.d/S23rsync
insserv: remove service /etc/init.d/../rc5.d/S22ssh
insserv: enable service ../init.d/ssh -> /etc/init.d/../rc5.d/S23ssh
insserv: remove service /etc/init.d/../rc5.d/S25rmnologin
insserv: enable service ../init.d/rmnologin -> /etc/init.d/../rc5.d/S26rmnologin
insserv: remove service /etc/init.d/../rc5.d/S23cpufrequtils
insserv: enable service ../init.d/cpufrequtils -> /etc/init.d/../rc5.d/S24cpufrequtils
insserv: remove service /etc/init.d/../rc5.d/S22loadcpufreq
insserv: enable service ../init.d/loadcpufreq -> /etc/init.d/../rc5.d/S23loadcpufreq
insserv: enable service ../init.d/backup.sh -> /etc/init.d/../rc5.d/S22backup.sh
insserv: enable service ../init.d/backup.sh -> /etc/init.d/../rc6.d/K01backup.sh
insserv: dryrun, not creating .depend.boot, .depend.start, and .depend.stop
Das ist mir dann ehrlich gesagt doch etwas zu viel des guten...

Wie kann ich das Skript sonst noch erfolgreich einbinden?
Deine Unterstützung für Freie Software kostet dich nur wenige Minuten: www.fsfe.org/support

Ich spreche von Freier Software!

Benutzeravatar
Saxman
Beiträge: 4233
Registriert: 02.05.2005 21:53:52
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: localhost

Re: init Stop-Skript in Squeeze

Beitrag von Saxman » 17.01.2011 11:35:07

Naja, wenn du auf das neue System umstellen willst ist es nur natürlich wenn die anderen Scripte angepasst werden.
Wenn du ein

Code: Alles auswählen

dpkg-reconfigure sysv-rc
ausführst zeigt er dir (falls nötig) welche Scripte eine Umstellung behindern. Erst wenn alle Scripte die du selbst angepasst hast einen LSB Header haben läuft das glatt durch, ansonsten stellt er das immer zurück und verwendet das alte Prinzip. Die Verlinkungen in die einzelnen Runlevel musst du im Übrigen nicht mehr per Hand vornehmen, das regelt eben der LSB Header. Die Scripte an sich sollten in /etc/init.d liegen.

Mehr kann Ich dir auch nicht dazu sagen da Ich nicht viel tiefer in die Materie einsteigen musste bis bei mir alles lief.
"Unix is simple. It just takes a genius to understand its simplicity." - Dennis Ritchie

Debian GNU/Linux Anwenderhandbuch | df.de Verhaltensregeln | Anleitungen zum Review und zum Verfassen von Wiki Artikeln.

Benutzeravatar
BeS
Moderator
Beiträge: 3236
Registriert: 17.04.2002 18:30:21
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Stuttgart
Kontaktdaten:

Re: init Stop-Skript in Squeeze

Beitrag von BeS » 17.01.2011 15:42:18

Saxman hat geschrieben:Naja, wenn du auf das neue System umstellen willst ist es nur natürlich wenn die anderen Scripte angepasst werden.
Wenn du ein

Code: Alles auswählen

dpkg-reconfigure sysv-rc
ausführst zeigt er dir (falls nötig) welche Scripte eine Umstellung behindern. Erst wenn alle Scripte die du selbst angepasst hast einen LSB Header haben läuft das glatt durch, ansonsten stellt er das immer zurück und verwendet das alte Prinzip. Die Verlinkungen in die einzelnen Runlevel musst du im Übrigen nicht mehr per Hand vornehmen, das regelt eben der LSB Header. Die Scripte an sich sollten in /etc/init.d liegen.
Das komisch ist, dass ich

Code: Alles auswählen

dpkg-reconfigure sysv-rc
direkt nach dem dist-upgrade schon erfolgreich ausgeführt habe (ohne meinem backup Skript). Auch wenn ich es jetzt ausführe läuft es ohne irgendeine Meldung durch. Eigentlich sollte das System also schon umgestellt sein. Deswegen finde ich die Ausgabe von insserv etwas überraschend, dass das Programm jetzt nochmal alles "umwerfen" will.
Deine Unterstützung für Freie Software kostet dich nur wenige Minuten: www.fsfe.org/support

Ich spreche von Freier Software!

Benutzeravatar
Saxman
Beiträge: 4233
Registriert: 02.05.2005 21:53:52
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: localhost

Re: init Stop-Skript in Squeeze

Beitrag von Saxman » 17.01.2011 15:56:37

BeS hat geschrieben: Das komisch ist, dass ich

Code: Alles auswählen

dpkg-reconfigure sysv-rc
direkt nach dem dist-upgrade schon erfolgreich ausgeführt habe (ohne meinem backup Skript). Auch wenn ich es jetzt ausführe läuft es ohne irgendeine Meldung durch. Eigentlich sollte das System also schon umgestellt sein. Deswegen finde ich die Ausgabe von insserv etwas überraschend, dass das Programm jetzt nochmal alles "umwerfen" will.
Das ist in der Tat seltsam. Ich hab jetzt mal ein wenig genauer hingeschaut und es scheint als ob er bei dir jedes Script um 1 "nach oben" versetzt angefangen mit 23 und dein Script findet sich

Code: Alles auswählen

insserv: enable service ../init.d/backup.sh -> /etc/init.d/../rc5.d/S22backup.sh
auf der 22.

Vielleicht ist es ja eben genau das was du möchtest. Dass es als erstes Script läuft?
"Unix is simple. It just takes a genius to understand its simplicity." - Dennis Ritchie

Debian GNU/Linux Anwenderhandbuch | df.de Verhaltensregeln | Anleitungen zum Review und zum Verfassen von Wiki Artikeln.

cosmac
Beiträge: 4576
Registriert: 28.03.2005 22:24:30

Re: init Stop-Skript in Squeeze

Beitrag von cosmac » 17.01.2011 16:30:26

hi,
Saxman hat geschrieben:Das ist in der Tat seltsam. Ich hab jetzt mal ein wenig genauer hingeschaut und es scheint als ob er bei dir jedes Script um 1 "nach oben" versetzt angefangen mit 23
genauso seltsam finde ich, dass er mit 23 (bzw. 22) anfängt und nicht mit 01. Etwas ähnliches ist mal durch einen unlogischen LSB-Header ausgelöst worden: Debian Bugreport529724. Wie sieht denn jetzt der Header von backup.sh aus? Die Einträge in rc1.d bis rc5.d gehören doch auch nicht dahin, oder?
'insserv' hat geschrieben:insserv: enable service ../init.d/backup.sh -> /etc/init.d/../rc1.d/K01backup.sh
insserv: enable service ../init.d/backup.sh -> /etc/init.d/../rc2.d/S22backup.sh
insserv: enable service ../init.d/backup.sh -> /etc/init.d/../rc3.d/S22backup.sh
...
Beware of programmers who carry screwdrivers.

Benutzeravatar
BeS
Moderator
Beiträge: 3236
Registriert: 17.04.2002 18:30:21
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Stuttgart
Kontaktdaten:

Re: init Stop-Skript in Squeeze

Beitrag von BeS » 17.01.2011 16:45:43

Es funktioniert jetzt :-)

Der Header sieht jetzt so aus:

Code: Alles auswählen

### BEGIN INIT INFO
# Provides:          backup.sh
# Required-Start:    $remote_fs $syslog
# Required-Stop:     $remote_fs $syslog
# Should-Start:      $portmap
# Should-Stop:       $portmap
# X-Start-Before:    nis
# X-Stop-After:      
# Default-Start:     
# Default-Stop:      0 1 6
# X-Interactive:     true
# Short-Description: init script to execute backup
# Description:       init script to execute backup
### END INIT INFO
davor hatte ich bei "Default-Start:" noch "2 3 4 5" drin, was zu den Verschiebungen geführt hat, wie Saxman richtig bemerkt hat. Nachdem ich das raus genommen habe wurden, so wie gewollt, nur die K01backup.sh links angelegt und alles funktioniert. :-)

Danke nochmal für die Hilfe!

PS: Gibt es eigentlich irgendwo eine Liste aller möglichen Variablen (z.B. $remote_fs, $syslog,...) mit einer kurzen Beschreibung? Oder woher weiß man was man da alles reinschreiben kann? Ich konnte dazu bisher keine genaue Aufstellung finden.
Deine Unterstützung für Freie Software kostet dich nur wenige Minuten: www.fsfe.org/support

Ich spreche von Freier Software!

rendegast
Beiträge: 15041
Registriert: 27.02.2006 16:50:33
Lizenz eigener Beiträge: MIT Lizenz

Re: init Stop-Skript in Squeeze

Beitrag von rendegast » 17.01.2011 18:44:42

Einmal:

Code: Alles auswählen

insserv: dryrun, not creating .depend.boot, .depend.start, and .depend.stop
die .depend.*

Dann natürlich die Konfig von insserv, /etc/insserv.conf + /etc/insserv.d/
bzgl. der Verwendung von Skriptnamen und deren Aliase.

Und Du kannst natürlich die Header aus /etc/init.d/ greppen.




Interessant ist besonders die Möglichkeit zum override von Skript-Headern.

in Squeeze wurde ja auf ein neues init System umgestellt, welches es ermöglicht Skripte beim Start parallel auszuführen.
Nicht so ganz, die parallele Ausführung erreichst Du schon durch Setzen des rcS-Parameters CONCURRENCY= auch mit dem "klassischen" init, auch bei zBsp. lenny. (etch?)
insserv sortiert nur die Anordnung der Startskripte anhand ihrer hoffentlich sinnvollen Header,
respektive der manuell gesetzten overrides.
Daher die Notwendigkeit, bei eigenen Skripten valide Header hizuzufügen.
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

cosmac
Beiträge: 4576
Registriert: 28.03.2005 22:24:30

Re: init Stop-Skript in Squeeze

Beitrag von cosmac » 17.01.2011 19:27:08

rendegast hat geschrieben:Interessant ist besonders die Möglichkeit zum override von Skript-Headern.
Meinst du, weil die Files in /etc/init.d/ dem Paketsystem gehören und die in /usr/share/insserv/overrides/ nicht? Ist das als Ersatz für das Löschen von Links in /etc/rc*.d gedacht? Das funktioniert ja nicht mehr und Änderungen am Script sind ja auch nicht sinnvoll, also wären die overrides ein netter Ersatz.
Beware of programmers who carry screwdrivers.

Antworten