missing LSB tags and overrides ...

Probleme mit Samba, NFS, FTP und Co.
Antworten
Leandros
Beiträge: 29
Registriert: 26.05.2011 11:40:44

missing LSB tags and overrides ...

Beitrag von Leandros » 26.05.2011 11:48:00

Moin,

bin mir jetzt nicht sicher wo das Thema reingehört. Deswegen hier. :)
Ich besitze einen root Server auf dem Debian 6.0 mit Parellels Plesk etc läuft. Nun habe ich, neben den Webservern, noch TS3 und CS:S Installiert. Da ich nicht jedes mal sie wieder ausführen möchte, wenn der Server mal neu gestartet werden muss, habe ich Starscripts angelegt. Doch werde ich beim ausführen von "update-rc.d xxxxxx defaults" immer mit einer menge von Fehlermeldungen erschlagen. Rausgefunden habe ich, dass die Scripte irgendwie gegen irgendeine konformität von Debian vestoßen.
Hier mal die Fehlermeldungen:

Code: Alles auswählen

update-rc.d: using dependency based boot sequencing
insserv: warning: script 'K01drwebd' missing LSB tags and overrides
insserv: warning: script 'K01psa-firewall' missing LSB tags and overrides
insserv: warning: script 'K01teamspeak3' missing LSB tags and overrides
insserv: warning: script 'K01psa-vpn' missing LSB tags and overrides
insserv: warning: script 'css_start' missing LSB tags and overrides
insserv: warning: script 'teamspeak3' missing LSB tags and overrides
insserv: script sendmail: service sendmail already provided!
insserv: warning: script 'psa-firewall-forward' missing LSB tags and overrides
insserv: warning: script 'psa-vpn' missing LSB tags and overrides
insserv: warning: script 'psa-firewall' missing LSB tags and overrides
insserv: warning: script 'drwebd' missing LSB tags and overrides
insserv: script vzquota: service vzreboot already provided!
Soweit ich interpretieren kann, wurde in Zeile 1 mein Script in den Autostart eingebunden. Aber was ist der rest? Ich habe gelesen man kann es durch hinzufügen von ein paar Zeilen Code nach der #!/bin/bash verhindern, stimmt das? Werden sie auch mit Fehler ausgeführt?

Hoffe ihr könnt mir helfen, wie ich das entfernen kann.

PS: Nicht einfach sagen, füg das und das ein. Sondern, warum ich es einfügen soll und was es bewirkt. Will es ja später alleine beseitigen können. :D

Benutzeravatar
novalix
Beiträge: 1702
Registriert: 05.10.2005 12:32:57
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: elberfeld

Re: missing LSB tags and overrides ...

Beitrag von novalix » 26.05.2011 19:16:25

Hallo und Willkommen im Forum!

Die Informationen, die Du suchst, findest Du zusammengefasst in der Datei

Code: Alles auswählen

/etc/init.d/README
Darin sind einige weitere links zu Quellen enthalten.
Die Datei

Code: Alles auswählen

/etc/init.d/skeleton
kannst Du als Referenz bzw. als Vorlage nutzen, musst Du aber nicht.
Initskripte älteren Stils funktionieren im Prinzip auch. Sie müssen allerdings die LSB-Header verpasst bekommen.
Dazu gibt es hier im Forum auch schon das eine oder andere Rezept.

Groetjes, niels
I have seen the face of death. It is a 1000+ line XML file of regexes.
j_houg

Leandros
Beiträge: 29
Registriert: 26.05.2011 11:40:44

Re: missing LSB tags and overrides ...

Beitrag von Leandros » 26.05.2011 19:41:04

Danke für die Antwort. Kann ich theoretisch den Beispiel Header in jedes Script packen und die Funktion wird nicht verändert?

Benutzeravatar
novalix
Beiträge: 1702
Registriert: 05.10.2005 12:32:57
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: elberfeld

Re: missing LSB tags and overrides ...

Beitrag von novalix » 27.05.2011 00:19:29

Nur sehr theoretisch.
Du solltest schon einige Einträge anpassen. Vor allen Dingen die Werte für "Required-Start" und "Required-Stop" sind wichtig.

Code: Alles auswählen

man insserv
sagt Dir, dass es diese Einträge auswertet, um den Ausführungszeitpunkt des Skripts zu bestimmen.
Um z.B. ein firewall script zu laden, sollte sichergestellt sein, dass das Netzwerk bereits funktioniert.

Code: Alles auswählen

# Required-Start:    $local_fs $network
Der Wert für "Provides" sollte der Name des zu startenden Daemons sein (z.B. teamspeak).
So kann ein weiteres Skript, welches möglicherweise einen gestarteten Teamspeakserver voraussetzt, diesen Wert als Variable in seinem Required-Start-Header nutzen.
Schau Dir einfach mal die Header in den Startskripten ähnlicher Dienste an.

Groetjes, niels
I have seen the face of death. It is a 1000+ line XML file of regexes.
j_houg

Leandros
Beiträge: 29
Registriert: 26.05.2011 11:40:44

Re: missing LSB tags and overrides ...

Beitrag von Leandros » 27.05.2011 09:12:43

Was hat es mit Default Start und Default Stop aufsich?

Edit: So, habe mich an die Script mal rangesetzt. Habe sie alle geflickt. Habe dieses LSB Header als vorlage genommen.

Code: Alles auswählen

### BEGIN INIT INFO
# Provides:          css_server
# Required-Start:    $local_fs $network
# Required-Stop:     $local_fs $network
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: CSS Server startscript.
# Description:       Starts our css server
### END INIT INFO

Habe dann in anderen init Scripts immer nur Description, Short-Description und provides geändert. Jetzt müsste alles korrekt starten, oder?
(Es waren alles Anwendungen die das Lokale Dateisystem benötigen und Internet z.B VPN, Firewall und DrWeb)

Wenn ich jetzt

Code: Alles auswählen

update-rc.d xxxxx defaults
ausführe, dann kommen aufjedenfall die LSB Errors nicht mehr. Allerdings kommt jetzt:

Code: Alles auswählen

update-rc.d: using dependency based boot sequencing
insserv: script sendmail: service sendmail already provided!
insserv: script vzquota: service vzreboot already provided!
Was hat das zu bedeuten? Wie kann ich diesen Error noch vermeiden?

Edit2: Ah, das mit dem Provides verstehe ich glaub jetzt. Im zweiten error, steht in script "vzquota" und "vzreboot" im LSB Header "Provides: vzreboot".
Da kann ich es ja einfach ändern, oder? Allerdings verstehe ich es beim ersten Error nicht, weil es ja die gleichen Scripte sind.

Noch eine kleine Frage. Mein Server hat ein paar kleine Internet ausfälle. Im Teamspeak macht es sich durch einen disconnect und sofortigen reconnect bemerkbar.

Code: Alles auswählen

<09:43:26> Verbindung zum Server verloren
<09:43:27> Versuche zum Server auf 62.141.38.240 zu verbinden
<09:43:28> Verbunden zum Server: PCGHX-Clan
Liegt das an meiner Konfiguration oder kann es am Provider liegen?

Edit3: Ich glaube der Disconnect kommt alle 70 Minuten. Bekam grad wieder einen:

Code: Alles auswählen

<10:53:26> Verbindung zum Server verloren
<10:53:27> Versuche zum Server auf 62.141.38.240 zu verbinden
<10:53:28> Verbunden zum Server: PCGHX-Clan
Edit4: Das Disconnect Problem könnte auch an mir liegen. Ich beobachte es!
Edit5: Nein. Das Disconnect Problem liegt am Server. Gibt es irgendwelche Logs die ich einsehen kann?

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

Re: missing LSB tags and overrides ...

Beitrag von rendegast » 27.05.2011 13:33:38

Da kann ich es ja einfach ändern, oder?
Dafür gibt es /etc/insserv/overrides/.

Code: Alles auswählen

    insserv: script sendmail: service sendmail already provided!
    insserv: script vzquota: service vzreboot already provided!
Was hat das zu bedeuten? Wie kann ich diesen Error noch vermeiden?

Edit2: Ah, das mit dem Provides verstehe ich glaub jetzt. Im zweiten error, steht in script "vzquota" und "vzreboot" im LSB Header "Provides: vzreboot".
... Allerdings verstehe ich es beim ersten Error nicht, weil es ja die gleichen Scripte sind.
Eventuell kommt ein alias ins Spiel?

Code: Alles auswählen

$ cat /etc/insserv.conf /etc/insserv.conf.d/*  |  egrep -v "^#"
$local_fs       +mountall +mountoverflowtmp +umountfs

$network        +networking +ifupdown

$named          +named +dnsmasq +lwresd +bind9 $network

$remote_fs      $local_fs +mountnfs +mountnfs-bootclean +umountnfs +sendsigs

$syslog         +rsyslog +sysklogd +syslog-ng +dsyslog +inetutils-syslogd

$portmap        portmap

$time           +hwclock

<interactive>   glibc udev console-screen keymap keyboard-setup console-setup cryptdisks cryptdisks-early checkfs-loop
$x-display-manager gdm

Code: Alles auswählen

grep -i provides: /etc/init.d/* /etc/insserv/overrides/*
Für die Lesbarkeit
grep -i provides: /etc/init.d/* /etc/insserv/overrides/*  |  cut -d: -f2
oder vielleicht
grep -i provides: /etc/init.d/* /etc/insserv/overrides/*  |  sed 's@:@:\t@'  |  pr -e40 -t

egrep -i "provides:.*sendmail" /etc/init.d/* /etc/insserv/overrides/*
?




-----------------------------------
Mein Server hat ein paar kleine Internet ausfälle.
Neuen Thread, evtl. mit Verweis auf diesen hier.
Zuletzt geändert von rendegast am 27.05.2011 14:18:51, insgesamt 2-mal geändert.
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

Leandros
Beiträge: 29
Registriert: 26.05.2011 11:40:44

Re: missing LSB tags and overrides ...

Beitrag von Leandros » 27.05.2011 14:12:06

Das versteh ich jetzt nicht so ganz. :?

Was hat es mit /etc/insserv/overrides auf sich? Das Verzeichnis ist bei mir leer.

Ein Alias? Meinst du das auf den ersten Error bezogen?

_______________
Habe wegen der Internetausfälle den Support angeschrieben. Wenn der nichts machen kann, wende ich mich wieder an euch. :)

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

Re: missing LSB tags and overrides ...

Beitrag von rendegast » 27.05.2011 14:27:30

Was hat es mit /etc/insserv/overrides auf sich? Das Verzeichnis ist bei mir leer.
Du hättest nicht die Original-Skripte ändern müssen,
sondern nur deren Header unter gleichem Namen in /etc/insserv/overrides/ erstellen.
(Steht in 'man insserv' unter "OVERRIDES".)
Ein Alias? Meinst du das auf den ersten Error bezogen?
insserv sortiert die Skripte anhand der Provides-Einträge, nicht deren Dateinamen,
und bietet einen alias-Mechanismus.
Beispiel dnsmasq:

Code: Alles auswählen

$ grep -i provides: /etc/init.d/dnsmasq 
# Provides:       dnsmasq

$ grep dnsmasq /etc/insserv.conf
$named          +named +dnsmasq +lwresd +bind9 $network
In anderen Skripten wird wohl nicht mit "dnsmasq" in Start-Stop gearbeitet,
sondern mit dem allgemeineren "named".
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

Leandros
Beiträge: 29
Registriert: 26.05.2011 11:40:44

Re: missing LSB tags and overrides ...

Beitrag von Leandros » 27.05.2011 14:47:57

Das erste versteh ich. Beim zweiten stehe ich irgendwie aufem Schlauch. :)
Ich versteh was es macht, nur nicht wie. :|

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

Re: missing LSB tags and overrides ...

Beitrag von rendegast » 27.05.2011 14:55:31

Viele Dienste beziehen sich auf "named":

Code: Alles auswählen

$ grep named /etc/init.d/*
/etc/init.d/chrony:# Should-Start:      $syslog $network $named $hwclock
/etc/init.d/chrony:# Should-Stop:       $syslog $network $named $hwclock
/etc/init.d/exim4:# Required-Start:    $remote_fs $syslog $named $network $time
/etc/init.d/exim4:# Required-Stop:     $remote_fs $syslog $named $network
/etc/init.d/fetchmail:# Should-Start:      $mail-transport-agent exim4 $named
/etc/init.d/postfix:# Required-Start:    $local_fs $remote_fs $syslog $named $network $time
/etc/init.d/postfix:# Required-Stop:     $local_fs $remote_fs $syslog $named $network
/etc/init.d/xdm:# Should-Start:      xfs $named slapd hal
/etc/init.d/xdm:# Should-Stop:       xfs $named slapd hal
Eine Funktion, die auch von vielen Paketen bereitgestellt wird,
angeboten wird hier nur "dnsmasq":

Code: Alles auswählen

$ egrep -i "provides.*(named|dnsmasq)" /etc/init.d/*
/etc/init.d/dnsmasq:# Provides:       dnsmasq
Die Lösung ist der alias.
Das vereinfacht die Paketpflege und deren Zusammenspiel.

Anmerkung
Die Dienste oben benötigen eigentlich keinen lokalen DNS-Server,
daher besitzt der Alias $named wiederum einen alias $network.
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

Leandros
Beiträge: 29
Registriert: 26.05.2011 11:40:44

Re: missing LSB tags and overrides ...

Beitrag von Leandros » 27.05.2011 15:35:56

Ich steh eindeutig auf dem Schlau. Ich glaub wir reden anneinander vorbei. :D

Um auf mein ehemaliges Problem zurück zukommen.

Code: Alles auswählen

        insserv: script sendmail: service sendmail already provided!
        insserv: script vzquota: service vzreboot already provided!
Ich habe jetzt im Script "vzquota" den LSB Header geändert. (vorher war "Provides: vzquota" anders, und zwar "Provides: vzreboot". Genau wie in dem Script vzreboot, deswegen ja der Error)

Code: Alles auswählen

### BEGIN INIT INFO
# Provides: vzquota
# Required-Start:
# Required-Stop:
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Description: Creates Virtuozzo second level quota
### END INIT INFO
Außerdem habe ich im Script Sendmail, Provides: sendmail zu Provides: sendmail1 geändert. Nun habe ich nach Ausführung von "update-rc.d xxxxx defaults" keine Error mehr.
Nun habe ich einfach mal

Code: Alles auswählen

update-rc.d sendmail dafaults
ausgeführt und mir hat mein PuTTy hat mir

Code: Alles auswählen

update-rc.d: using dependency based boot sequencing
update-rc.d: warning: sendmail stop runlevel arguments (0 1 6) do not match LSB Default-Stop values (1)
ausgegeben.

Daraufhin habe ich noch

Code: Alles auswählen

update-rc.d vzreboot defaults
ausgeführt und mir wurde ausgegeben

Code: Alles auswählen

update-rc.d: using dependency based boot sequencing
update-rc.d: warning: vzreboot start runlevel arguments (2 3 4 5) do not match LSB Default-Start values (none)
update-rc.d: warning: vzreboot stop runlevel arguments (0 1 6) do not match LSB Default-Stop values (6)
Bei update-rc.d vzquota defaults lief alles sauber durch.

Was hat das jetzt für mich zu Bedeuten? Kann ich testweise mal meinen Server rebooten und alles wird gestartet?

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

Re: missing LSB tags and overrides ...

Beitrag von rendegast » 27.05.2011 16:16:44

Außerdem habe ich im Script Sendmail, Provides: sendmail zu Provides: sendmail1 geändert.
Du solltest lieber feststellen, wer außer dem Skript sendmail noch vorgibt, "sendmail" zu sein:
update-rc.d: warning: sendmail stop runlevel arguments (0 1 6) do not match LSB Default-Stop values (1)
und das korrigieren. sendmail sollte wieder "sendmail" sein.
Irgendwelche copy+paste-Fehler Deinerseits in einem anderen Skript?


Ich habe jetzt im Script "vzquota" den LSB Header geändert. (vorher war "Provides: vzquota" anders, und zwar "Provides: vzreboot". Genau wie in dem Script vzreboot, deswegen ja der Error)
Die Skripte sind mangelhaft, bzgl. LSB auch fehlerbehaftet.
Woher? Resp. gibt es reparierte Updates?

update-rc.d vzreboot defaults

update-rc.d: warning: vzreboot start runlevel arguments (2 3 4 5) do not match LSB Default-Start values (none)
update-rc.d: warning: vzreboot stop runlevel arguments (0 1 6) do not match LSB Default-Stop values (6)
'defaults' setzt Start 2 3 4 5 und Stop 0 1 6.
Hört sich "vzreboot" etwa danach an?
Es wird nur im Reboot-Runlevel 6 gebraucht, daher auch "LSB Default-Stop values (6)".




-----------------------------------------------
Wenn die Provider-Vorgaben nicht nach sendmail verlangen,
solltest Du sendmail durch postfix ersetzen,
dafür ist einfacher Hilfe zu bekommen.
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

Antworten