Init Skript geht nicht [fertsch]

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
Lolek
Beiträge: 121
Registriert: 22.12.2009 21:02:29

Init Skript geht nicht [fertsch]

Beitrag von Lolek » 10.02.2012 18:11:36

Hallo Leute,

ich habe eine Neuinstallation von Debian 6.0.3 gemacht. Ich habe ein Init Skript geschrieben und die Links in den Runlevel- Ordnern angelegt. Das Skript wird beim starten aber nicht ausgeführt.
Ich habe nun gesehen das unter /etc/init.d drei Dateien liegen in denen Initskripte in einer bestimmten Reihenfolge eingetragen sind.
Ich denke mir das das Skript dort irgendwie eingetragen werden muss.

Kann mir jemand einen Tipp geben was es mit diesen Dateien aufsich hat?? Bei :google: bin ich nicht so richtig fündig geworden.

Danke für alle Antworten.
Zuletzt geändert von Lolek am 12.02.2012 17:08:58, insgesamt 1-mal geändert.
Gruß Lolek

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

Re: Init Skript geht nicht

Beitrag von rendegast » 10.02.2012 18:15:44

Ist das Skript ausführbar?
Wegen der "drei Dateien" (insserv), hat es einen validen LSB-Header?
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

Benutzeravatar
bluelupo
Beiträge: 153
Registriert: 26.10.2004 11:15:30
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: Südostbayern

Re: Init Skript geht nicht

Beitrag von bluelupo » 10.02.2012 19:43:09

Hi Lolek,
wie schaut dein Initscript aus und welche Links hast du gesetzt? Bitte poste mal die entsprechenden Infos damit die Leser hier im Forum besser helfen können.
Ciao
bluelupo

DeletedUserReAsG

Re: Init Skript geht nicht

Beitrag von DeletedUserReAsG » 10.02.2012 22:44:13

Habe gerade versucht, die Infos zu bekommen. Hat nicht geklappt, muss an den Sonnenwinden liegen. Screenshot: http://bit.ly/zeSIb3

scnr,
niemand

Benutzeravatar
Lolek
Beiträge: 121
Registriert: 22.12.2009 21:02:29

Re: Init Skript geht nicht

Beitrag von Lolek » 11.02.2012 17:14:07

Hallo Leute,

danke für die Antworten.
Das Skript ist ausführbar. Wenn ich es von Hand starte geht es.
Links habe ich in den dafür vorgesehenen Ordnern rcX angelegt "@S30blasuelzScript".
Ich habe das Problem schonmal bei einer Installation von Debian 6.0.1 gehabt. Ich glaube mich zu erinnern in eine der Dateien ".depend.boot" oder ".depend.start" die im init.d verzeichnis liegen etwas eingetragen zu haben. Ich kann mich aber ums Verrecken nicht erinnern was ich da gemacht habe... wenn man nicht alles aufschreibt. :evil: .
Das Script soll Homeverzeichnisse aus einer Vorlage in den Arbeitsspeicher kopieren (Tempfs).

Code: Alles auswählen

#!/bin/sh
### BEGIN INIT INFO
# Provides:		UserHome
# Required-Start:
# Required-Stop:
# Default-Start:	1 2 3 4 5
# Default-Stop:		0 6
# Short-Description: Initialisiert eine Ramdisk
# Description:
### END INIT INFO
#
# 

case "$1" in
start)
echo "Homeverzeichnisse in den Arbeitsspeicher schreiben"
#
	/bin/cp -r /template/dh5ue /home
	/bin/cp -r /template/root/ /
	/bin/chown -fR dh5ue:dh5ue /home/dh5ue
	exit 0
	;;
stop)
	echo "STOP"
	;;
restart)
	echo "Restart"
	;;
*)
	echo "keine gueltige Option"
	;;
esac
exit 0
@niemand: Geiler Link zu Glaskugel TV. Hab den Wink verstanden. hi hi
Gruß Lolek

Benutzeravatar
Lolek
Beiträge: 121
Registriert: 22.12.2009 21:02:29

Re: Init Skript geht nicht

Beitrag von Lolek » 12.02.2012 17:07:33

Hallo Leute,

ich hab nochmal etwas probiert und es ist mir geglückt das Skript zum laufen zu überzeugen. Ich hab es in der Datei /etc/init.d/.depend.start in die Zeile Target eingetragen und schwups hat's funktioniert. :mrgreen:

Danke nochmal für die Antworten.
Gruß Lolek

Benutzeravatar
detix
Beiträge: 1743
Registriert: 07.02.2007 18:51:28
Wohnort: MK

Re: Init Skript geht nicht [fertsch]

Beitrag von detix » 12.02.2012 21:23:28

...wo es wahrscheinlich bei der nächsten Aktualisierung wieder rausfliegen wird.

Lies mal hier:
http://wiki.debian.org/LSBInitScripts
insserv ist mittlerweile für die Sortierung der Startskripte in /etc/init.d zuständig.

Vorschlag für eine Änderung deines LSB-Headers:

Code: Alles auswählen

# Required-Start:    $all
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
dann als root insserv -vn ausführen und sehen ob dein Skript an der gewünschten Stelle einsortiert würde,
falls ja dann insserv ohne Parameter ausführen.
Gruß an alle Debianer, und immer daran denken:
Macht ohne Haftung funktioniert nicht!

Benutzeravatar
Lolek
Beiträge: 121
Registriert: 22.12.2009 21:02:29

Re: Init Skript geht nicht [fertsch]

Beitrag von Lolek » 14.02.2012 11:59:49

Hallo defix,

danke für den Tipp.
Du hast in deinem Post bei Default-Stop Runlevel 1 eingetragen. RN1 ist doch der singelUserMod, da das Skript aber die Home Verzeichnisse erzeugt müsste es doch in RN1 ausgeführt werden oder sehe ich das falsch?
Gruß Lolek

Benutzeravatar
detix
Beiträge: 1743
Registriert: 07.02.2007 18:51:28
Wohnort: MK

Re: Init Skript geht nicht [fertsch]

Beitrag von detix » 14.02.2012 19:04:02

Hoppla, da hab ich doch falsch gelesen aber wenns läuft...
in der manpage von init steht:
Als Konsequenz davon ist es nicht sicher, von Runlevel 1 zu einem Mehrbenutzer-Runlevel zurückzukehren:
Daemons, die in Runlevel S gestartet wurden und für normale Operationen benötigt werden, laufen nicht länger.
Das System sollte neu gestartet werden.
und sogesehen ist runlevel 1 eher ein stoplevel.

Es gibt einen kleinen Unterschied beim singelUserMod mit init 1 oder beim booten mit Kernelparameter s:
http://www.debian.org/doc/manuals/debia ... e_runlevel
Wenn dein Skript sehr früh ausgeführt werden muss, ist es vielleicht besser in /etc/rcS.d aufgehoben,
am Ende ausgeführt wird reichen, also kann $all bleiben,
Default-Start: 2 3 4 5 auf Default-Start: S ändern.
Gruß an alle Debianer, und immer daran denken:
Macht ohne Haftung funktioniert nicht!

Benutzeravatar
Lolek
Beiträge: 121
Registriert: 22.12.2009 21:02:29

Re: Init Skript geht nicht [fertsch]

Beitrag von Lolek » 15.02.2012 07:10:05

Moin defix,

ich hab hier einen Thinclient mit cf Karte. Um die Schreibvorgänge auf der Karte zu minimieren habe ich die Homeverzeichnisse mit tempfs in den Arbeitsspeicher ausgelagert. Das Skript kopiert nur /root und /home aus einer Vorlage in den Speicher. Es ist das letzte Skript was beim Start ausgeführt wird aber wenn man sich im RL1 anmelden will brauch man eben auch ein Homeverzeichniss. Deshalb kann ich in RL1 auf das Skript nicht verzichten.
Gruß Lolek

Benutzeravatar
detix
Beiträge: 1743
Registriert: 07.02.2007 18:51:28
Wohnort: MK

Re: Init Skript geht nicht [fertsch]

Beitrag von detix » 16.02.2012 20:25:41

Was gefällt dir am Runlevel 1 so gut, das du unbedingt darauf bestehst?

ps: gönn deinem Browser mal eine gescheite Schriftart:
mein Nick ist detix, mit t wie toll, nicht mit f wie furchtbar.
Gruß an alle Debianer, und immer daran denken:
Macht ohne Haftung funktioniert nicht!

Benutzeravatar
Lolek
Beiträge: 121
Registriert: 22.12.2009 21:02:29

Re: Init Skript geht nicht [fertsch]

Beitrag von Lolek » 17.02.2012 09:51:59

Hallo detix,

entschuldige den Schreibfehler. Ich hatte meine Brille vergessen da hab ich es falsch gelesen. :P

Was RL1 betrifft so ist es ja nunmal da und wenn man es mal brauchen sollte dann braucht man auch ein Userverzeichniss.
Gruß Lolek

DeletedUserReAsG

Re: Init Skript geht nicht [fertsch]

Beitrag von DeletedUserReAsG » 17.02.2012 10:02:22

Eigentlich ist 1 eher für Wartungs-/Reparatursachen gedacht. Die macht typischerweise root, und dessen ~ befindet sich ja üblicherweise außerhalb von /home.

cu,
niemand

Benutzeravatar
detix
Beiträge: 1743
Registriert: 07.02.2007 18:51:28
Wohnort: MK

Re: Init Skript geht nicht [fertsch]

Beitrag von detix » 17.02.2012 18:05:51

Lolek, kann es sein das du ein grundsätzliches Verständnisproblem mit den Runlevels (R) hast?
Finde keinen passenden Link, also nachfolgendes ohne Gewähr!

Es ist nicht so mit der Bootreihenfolge: R0, 1, 2, 3,...
Zuerst kommt Runlevel S, der bei jedem Bootvorgang durchlaufen wird mit seinen Skripten in /etc/rcS.d/,
ein "S" am Anfang des Symlinks bedeutet Dienst/Programm starten, ein "K" kill oder stoppen.

Danach kommt nicht R1, sondern schon das was in der /etc/inittab unter der Zeile
"# The default runlevel." als "initdefault" eingetragen ist,
normalerweise R5, da R2-5 bei debian eigentlich identisch sind.

Runlevel 1 (Skripte in /etc/rc1.d/) wird also beim Hochfahren das Systems garnicht durchlaufen.
Da dein Skript kein Dienst ist der beim Runterfahren gestoppt werden müsste,
kannst du die Einträge in "Default-Stop:" auch leer lassen (0 1 6 löschen), bringt ja nichts.

Vielleicht ist es jetzt etwas klarer geworden,
warum das Skript besser in Runlevel S und wahrscheinlich auch nur dort platziert sein sollte.
Gruß an alle Debianer, und immer daran denken:
Macht ohne Haftung funktioniert nicht!

Benutzeravatar
Lolek
Beiträge: 121
Registriert: 22.12.2009 21:02:29

Re: Init Skript geht nicht [fertsch]

Beitrag von Lolek » 19.02.2012 16:46:50

Hallo detix,

ja hast ja Recht. Im normalen Betrieb ist der Eintrag im RL1 völlig sinnfrei. Es kann ja aber sein, aus welchen Gründen auch immer, das man den Rechner im SingelUserMode startet. In diesem Fall brauch ich ja wenigstens /root. Ja, man kann das Skript auch unter /etc/rcS.d einbinden. Da brauch man auch nur einen Link anstatt 5 legen... hi hi :lol: In diesem Fall wird es ja auch beim Start ausgeführt.
Gruß Lolek

Antworten