Starten eines Programms beim Wechsel des Runlevels

Post Reply
Message
Author
fbn
Posts: 78
Joined: 08. Jul 2000 16:28
Location: Friedrichshafen (Bodensee)
Contact:

Starten eines Programms beim Wechsel des Runlevels

#1 Post by fbn »

Hi there...
ich versuche den VNCServer automatisch zu starten, wenn mein System in den Runlevel 2 wechselt.
Dazu hab ich im /sbin/init.d/rc2.d/ einen symbolischen Link angelegt:
S1:/sbin/init.d/rc2.d # ll S31vncserver
lrwxrwxrwx 1 root root 24 Nov 15 22:03 S31vncserver -> /usr/local/bin/vncserver
S1:/sbin/init.d/rc2.d #
Eigentlich müsste doch /usr/local/bin/vncserver ausgeführt werden, sobald runlevel 2 augeführt wird...
Mit ps -ef | grep vnc sehe ich aber keinen server
Woran könnt's liegen?
Frank
__________________
Life 's too short for reboots - Linux!

User avatar
hjb
Pro-Linux
Posts: 3264
Joined: 15. Aug 1999 16:59
Location: Bruchsal
Contact:

Re: Starten eines Programms

#2 Post by hjb »

Hi,

ps -ef ist sysv-Syntax. Linux verwendet ps ax.

Gruß,
hjb
Pro-Linux - warum durch Fenster steigen, wenn es eine Tür gibt?

Jochen

Re: Starten vncserver beim Wechsel des Runlevels

#3 Post by Jochen »

Das Programm, zu dem Du ein Link in rc2.d setzt, bekommt beim Aufruf den Parameter "start" mitgegeben. Die Chancen stehen gut, dass vncserver das Argument nicht versteht und sich nach einer Fehlermeldung (die Du höchstens in den Logs wiederfindest) beendet.

Und damit hast DU Glück gehabt! <img src="http://www.pl-forum.de/UltraBoard/Images/Happy.gif" border="0" align="middle">

Würde der vncserver korrekt aufstarten, liefe das Skript für den Runlevelwechsel erst weiter, wenn der vncserver sich beendet (ausser, wenn der vncserver sich selbst als Daemon in den Hintergrund setzt). Als Resultat würde der Rechner dort hängenbleiben...

Unter rc[1-6].d liegen typischerweise nur Links auf <i>Skripte</i>, die in Deinem Fall unter /sbin/init.d liegen. Diese Skripte können mindestens mit den Parametern "start" und "stop" was anfangen, nämlich den entsprechenden Dienst starten oder beenden. Unter /sbin/init.d müsste auch ein eDatei namens skeleton, skel, skelett oder so liegen, die die Rohform eines solchen Skriptes darstellt. Mach Dir eine Kopie davon, ändere sie ab, um vncserver zu starten oder zu killen, und linke <i>darauf</i> von /sbin/init.d/rc2.d her. Dann solltest Du mehr Erfolg haben. Und eins noch: Immer daran denken, dass der Daemon, falls notwendig, auch in den Hintergrund gesetzt wird.

Viel Spass dabei!

Und, hjb: "ps -ef" tut's genauso wie "ps ax". Der proc-ps hat das Kunststück geschafft, weder die BSD- noch die SysV-Jünger zu verprellen...

Post Reply