Diese Website existiert nur weil wir Werbung mit AdSense ausliefern.
Bitte den AdBlocker daher auf dieser Website ausschalten! Danke.

"no such file or directory", aber nur bei startup

Alles rund um die verschiedenen Konsolen und shells sowie die Programmierung unter Linux

Moderator: Moderatoren

Antworten
thommas
Newbie
Newbie
Beiträge: 9
Registriert: 8. Sep 2005, 14:07

"no such file or directory", aber nur bei startup

Beitrag von thommas »

ich habe einen startup link in /etc/init.d/rc3.d/S80lampp

beim startup in runlevel3 erfolgt die folgende error message:
"Lampp: no such file or directory"

wenn der rechner gestartet hat, und ich dann
./S80lampp start eingebe, dann funktioniert der link.

Weiss jemand, was das problem sein koennte??

viele dank

thomas
Benutzeravatar
oc2pus
Ultimate Guru
Ultimate Guru
Beiträge: 6506
Registriert: 21. Jun 2004, 13:01

Beitrag von oc2pus »

das sieht so aus, als ob dein Script S80xxx zu früh gestartet wird.

Hast du den Link in /etc/init.d/... selber angelegt ?
tell people what you want to do, and they'll probably help you to do it.
PackMan
LinWiki : Das Wiki für Linux User
thommas
Newbie
Newbie
Beiträge: 9
Registriert: 8. Sep 2005, 14:07

Beitrag von thommas »

den S80Lampp habe ich selber angelegt, doch es gibt keine weiteren Eintraege nach S80
Benutzeravatar
oc2pus
Ultimate Guru
Ultimate Guru
Beiträge: 6506
Registriert: 21. Jun 2004, 13:01

Beitrag von oc2pus »

dachte ich mir ;)

mach es einfach richtig wie hier beschrieben und es wird funktionieren:
Wichtig: [HOWTO] runlevel scripte - selber erstellen
http://www.linux-club.de/viewtopic.php?t=16069
tell people what you want to do, and they'll probably help you to do it.
PackMan
LinWiki : Das Wiki für Linux User
Benutzeravatar
nbkr
Guru
Guru
Beiträge: 2859
Registriert: 10. Jul 2004, 15:47

Beitrag von nbkr »

Gib in den Startscript auch mal den vollständigen Pfad an sofern nicht schon gesehen. Das war mal das Problem bei mir.
Kann gar nicht sein, ich bin gefürchtet Wald aus, Wald ein.
thommas
Newbie
Newbie
Beiträge: 9
Registriert: 8. Sep 2005, 14:07

Beitrag von thommas »

Danke fuer die Tips. Die anleitung ist sehr gut.
Bei mir (Suse 8.1) funktionierts, auch mit dem autostart.

Bei einem anderen Rechner mit Suse 9.3 funktionierts nicht, obwohl wir exakt dieselben links haben (???).
admine
Administrator
Administrator
Beiträge: 8941
Registriert: 15. Feb 2004, 21:13

Beitrag von admine »

thommas hat geschrieben:Bei einem anderen Rechner mit Suse 9.3 funktionierts nicht, obwohl wir exakt dieselben links haben (???).
Und welche Fehlermeldungen kommen ?
Grüße
-------------------------
..:: Deutsche Mugge ::..
-------------------------
Benutzeravatar
oc2pus
Ultimate Guru
Ultimate Guru
Beiträge: 6506
Registriert: 21. Jun 2004, 13:01

Beitrag von oc2pus »

thommas hat geschrieben:Danke fuer die Tips. Die anleitung ist sehr gut.
Bei mir (Suse 8.1) funktionierts, auch mit dem autostart.

Bei einem anderen Rechner mit Suse 9.3 funktionierts nicht, obwohl wir exakt dieselben links haben (???).
bist du sicher das dein Service auch aktiviert wurde?
prüfe das mal mit dem YaST -Runlevel-Editor ob dein Dienst aktiviert ist UND ob er für die Runlevel 3 (und 5) aktiviert wurde.

das alleinige vorhandensein eines links und der Dateien startet NICHT automatisch den Dienst, erst die Aktivierung!
tell people what you want to do, and they'll probably help you to do it.
PackMan
LinWiki : Das Wiki für Linux User
admine
Administrator
Administrator
Beiträge: 8941
Registriert: 15. Feb 2004, 21:13

Beitrag von admine »

oc2pus hat geschrieben: das alleinige vorhandensein eines links und der Dateien startet NICHT automatisch den Dienst, erst die Aktivierung!
Hier würde ich gern eine Frage dranhängen und die ist IMHO nicht ganz OffTopic.
Ich bringe für gewöhnlich meine Run-Level-Scripte nicht via "insserv" od. YaST ins System ein, sondern kopiere diese einfach nach /etc/init.d und lege manuell die Links mit ln -s für ein Sxxscript bzw. ein Kxxscript in die entsprechenden Run-Level
(über gut od. nicht gut dieser Methode soll hier eher nicht diskutiert werden, mir sind die möglichen "Nachteile" bekannt)
und sie werden, so wie ich das möchte auch ausgeführt.
Was aber meinst du jetzt mit "Aktivierung"? :roll:
Grüße
-------------------------
..:: Deutsche Mugge ::..
-------------------------
thommas
Newbie
Newbie
Beiträge: 9
Registriert: 8. Sep 2005, 14:07

Beitrag von thommas »

Ok..wir sind einen schritt weitergekommen.

wir haben ein paar echos in das startscript getan, gleich zu beginn. Wenn wir das startscript ausfuehren mit

/opt/lampp/lampp start (dann erscheinen die echos)

ebenso erscheinen die echos auch wenn wir das so ausfuehren mit dem s-link

/etc/init.d/rc3.d/S90lampp start

nun, wenn wir aber den rechner booten, dann kommen keine echos, nur die fehlermeldung

lampp: no such file or command
Benutzeravatar
oc2pus
Ultimate Guru
Ultimate Guru
Beiträge: 6506
Registriert: 21. Jun 2004, 13:01

Beitrag von oc2pus »

aus der /etc/init.d/README

Code: Alles auswählen

 The system configuration files in /etc/sysconfig contain  most  of  the variables  used  to  configure the installed services.  These variables can easily be changed by YaST or by using an  editor.  After  using  an editor,  the  script  /sbin/SuSEconfig must be called to distribute the settings into the system.
und das ist der SuSE spezifische voodo-magic. D.h es wird solange nach deinem Verfahren funktionieren wie keine Variablen aus der /etc/sysconfig ins SPile kommen, ansonsten "sourcen" die meisten runlevel-scripte diese /etc/sysconfig Konfiguration und werden ausgeführt oder auch nicht, abhängig von den gesetzten Variablen in /etc/sysconfig.

Das ist mit einer der Gründe warum ich immer wieder sage, man möge nicht einfach links in die Runlevel-Verzeichnisse legen. Und die Reihenfolge der links (also die Namensgebung) wird oft durch den Aufruf eines SuSEconfig unter Umständen willkürlich geändert (das hängt davon ab in welchem Kontext SuSEconfig aufgerufen wird). Die Nummerierung wird duch diese Sektion am Anfang eines runlevel Scripts beeinflusst:

Code: Alles auswählen

### BEGIN INIT INFO
# Provides:          named
# Required-Start:    $network $remote_fs $syslog
# Required-Stop:     $network $remote_fs $syslog
# Should-Start:      ldap
# Default-Start:     3 5
# Default-Stop:      0 1 2 6
# Short-Description: Domain Name System (DNS) server, named
# Description:       Berkeley Internet Name Domain (BIND) implementation of the
#       Domain Name System (DNS) server named.
### END INIT INFO
ist IMHO aber dennoch off-topic, da fasches Forum ;)
tell people what you want to do, and they'll probably help you to do it.
PackMan
LinWiki : Das Wiki für Linux User
admine
Administrator
Administrator
Beiträge: 8941
Registriert: 15. Feb 2004, 21:13

Beitrag von admine »

oc2pus hat geschrieben: ist IMHO aber dennoch off-topic, da fasches Forum ;)
thx ... und der Mod. möge ein Nachsehen mit uns haben ;)

EDIT: und du hast unbestritten Recht ... meine Methode ist nicht zur Nachahmung empfohlen.
Grüße
-------------------------
..:: Deutsche Mugge ::..
-------------------------
admine
Administrator
Administrator
Beiträge: 8941
Registriert: 15. Feb 2004, 21:13

Beitrag von admine »

thommas hat geschrieben:Ok..wir sind einen schritt weitergekommen.
wir haben ein paar echos in das startscript getan, gleich zu beginn. Wenn wir das startscript ausfuehren mit
/opt/lampp/lampp start (dann erscheinen die echos)
ebenso erscheinen die echos auch wenn wir das so ausfuehren mit dem s-link
/etc/init.d/rc3.d/S90lampp start
nun, wenn wir aber den rechner booten, dann kommen keine echos, nur die fehlermeldung
lampp: no such file or command
Hm ... sieht schon irgendwie nach fehlenden Variablen bezügl. Such-Pfade aus.
Hast du mal den Tipp von "nbkr" (vollständige Pfade im Script angeben) getestet ?
Grüße
-------------------------
..:: Deutsche Mugge ::..
-------------------------
Benutzeravatar
oc2pus
Ultimate Guru
Ultimate Guru
Beiträge: 6506
Registriert: 21. Jun 2004, 13:01

Beitrag von oc2pus »

hast du denn ein script lampp in /etc/init.d stehen ???

wenn nein lege dort eine script als wrapper-script für /opt/lampp/lampp an
aber wie das geht steht sowieso herrvorragend auf der xampp homepage erklärt. Es ist also müssig das hier zu wiederholen ;)

http://www.apachefriends.org/de/faq-xam ... x.html#fsl

Code: Alles auswählen

* Nach einen Neustart des Rechners läuft XAMPP nicht mehr?
Richtig, das ist normal für Linux und andere Unixe. Der Administrator muss selbst dafür sorgen, dass ein Dienst - in diesem Fall XAMPP - beim Neutstart des Rechners mit gestartet wird. In vielen Linux-Distributionen wird das automatisch gelöst oder es wird ein Runlevel-Editor angeboten.

Um XAMPP bei den meisten Linux-Distributionen "bootsicher" zu machen bitte die folgenden Schritte ausführen:

   1. Herausfinden, welchen default runlevel sein Linux-System hat.
      Dazu einfach egrep :initdefault: /etc/inittab aufrufen.
      Man sollte nun eine Zeile sehen, die zwischen zwei Doppelpunkten steht.
      In den meisten Fällen wird das 3 oder 5 sein.

   2. Nun in das Verzeichnis wechseln, dass diesen Runlevel configuriert.
      Wenn Dein Runlevel z. B. 3 ist dann mit cd /etc/rc.d/rc3.d in dieses Verzeichnis wechseln.
      Hinweis: Auf manchen Systemen funktioniert diese Methode nicht. Dort bitte /etc/init.d/rc3.d verwenden.

   3. Hier ist nun die eigentliche Konfiguration vorzunehmen.
      Und zwar mit den folgenden beiden Befehlen:

      ln -s /opt/lampp/lampp S99lampp
      ln -s /opt/lampp/lampp K01lampp

Nun wird XAMPP automatisch bei jedem Neustart von Linux mit gestartet. Und beim Runterfahren des Rechners auch ordentlich heruntergefahren.
tell people what you want to do, and they'll probably help you to do it.
PackMan
LinWiki : Das Wiki für Linux User
thommas
Newbie
Newbie
Beiträge: 9
Registriert: 8. Sep 2005, 14:07

Beitrag von thommas »

Ja, genauso hatten wir es gemacht, wie in der anleitung beschrieben.

wir haben das lampp startscript jetzt ins /etc/init.d verzeichnis kopiert und die links im /etc/init.d/rc3.d dort drauf zeigen lassen. Jetzt funktionierts...... (???)

Wieso das??? vorher was das lampp einfach an einem anderen ort aber mit den richtigen links.

anyways, vielen dank fuer eure kommentare und Hilfe!
Benutzeravatar
oc2pus
Ultimate Guru
Ultimate Guru
Beiträge: 6506
Registriert: 21. Jun 2004, 13:01

Beitrag von oc2pus »

weil nur die Scripte in /etc/init.d abgenudelt werden, wenn dort keines ist, dann wird auch der link in dem runlevel verzeichnis nicht ausgeführt ;)

deshalb auch mein Hinweis auf die README in /etc/init.d und auf mein Howto da steht genau drin wie das funktioniert ...
tell people what you want to do, and they'll probably help you to do it.
PackMan
LinWiki : Das Wiki für Linux User
thommas
Newbie
Newbie
Beiträge: 9
Registriert: 8. Sep 2005, 14:07

Beitrag von thommas »

Ist das wirklich so?

Weil untenstehende Anleitung funktioniert im startup, obwohl es kein startscript im /etc/init.d gibt. Es gibt nur die links im rc3.d.

Wir hatten dasselbe problem noch mit einem anderen script. Als wir die scripte noch ins /usr/sbin verzeichnis verlinkt hatten, dann gings...... bei 8.1 mussten wir das nicht machen.

Code: Alles auswählen

Um XAMPP bei den meisten Linux-Distributionen "bootsicher" zu machen bitte die folgenden Schritte ausführen: 

   1. Herausfinden, welchen default runlevel sein Linux-System hat. 
      Dazu einfach egrep :initdefault: /etc/inittab aufrufen. 
      Man sollte nun eine Zeile sehen, die zwischen zwei Doppelpunkten steht. 
      In den meisten Fällen wird das 3 oder 5 sein. 

   2. Nun in das Verzeichnis wechseln, dass diesen Runlevel configuriert. 
      Wenn Dein Runlevel z. B. 3 ist dann mit cd /etc/rc.d/rc3.d in dieses Verzeichnis wechseln. 
      Hinweis: Auf manchen Systemen funktioniert diese Methode nicht. Dort bitte /etc/init.d/rc3.d verwenden. 

   3. Hier ist nun die eigentliche Konfiguration vorzunehmen. 
      Und zwar mit den folgenden beiden Befehlen: 

      ln -s /opt/lampp/lampp S99lampp 
      ln -s /opt/lampp/lampp K01lampp 

Benutzeravatar
oc2pus
Ultimate Guru
Ultimate Guru
Beiträge: 6506
Registriert: 21. Jun 2004, 13:01

Beitrag von oc2pus »

in /sbin oder /usr/sbin legt SuSE normalerweise links auf die scripte welche in /etc/init.d stehen an. Aber unter einem anderen Namen, mit dem präfix rc

also in /usr/sbin z.Bsp: rcnamed, rcsquid, rcsasl, rcnfs ...
in /etc/init.d gibt es dann die "echten" scripte: named, squid, nfs ...

das ist der Magic hinter rcnamed start etc.

überzeuge dich selbst mit ls -al /usr/sbin/rc*

es kann sein, das bei alten SuSE Versionen es durchaus ausreichte einen link in das entsprechende /etc/init.d/rc.X Verzeichnis zu setzen. Letzendlich ist es das Programm init welches den Ablauf steuert. Und der Ablauf könnte sich geändert haben .. (werde mal meine alte 8.2 diesbezüglich prüfen).

Release-Notes studieren hilft hier evtl weiter um rauszufinden seit wann sich das so geändert hat.

bei 9.3 steht das in der README:

Code: Alles auswählen

DESCRIPTION
       The scripts for controlling the system are placed in /etc/init.d/ (they
       have been moved according to the Linux Standard Base  (LSB)  specifica-
       tion).    These   scripts   are  executed  directly  or  indirectly  by
       /sbin/init,  the  father  of  all  processes.  The   configuration   of
       /sbin/init is given by the file /etc/inittab (see inittab(5)).

       At  boot  time, the boot level master script /etc/init.d/boot is called
       to initialise the system (e.g. file system check, ...).  It  also  exe-
       cutes some hardware init scripts linked into /etc/init.d/boot.d/.  Then
       it calls /etc/init.d/boot.local, which executes the local commands.

       After system startup, /sbin/init will normally switch  on  the  default
       run  level given in /etc/inittab.  It calls the run level master script
       /etc/init.d/rc to start or stop services provided by the other  scripts
       under /etc/init.d/.
tell people what you want to do, and they'll probably help you to do it.
PackMan
LinWiki : Das Wiki für Linux User
thommas
Newbie
Newbie
Beiträge: 9
Registriert: 8. Sep 2005, 14:07

Beitrag von thommas »

I see.
Vielen Dank fuer deine tolle hilfe!!!
Antworten