PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Eigener Runlevel unter Suse 10.0



baltasar
26.01.06, 16:06
Hi

Ich verwende Suse 10.0 und würde nun gerne einen eigenen runlevel anlegen, in dem kein samby, cups, kdm... gestartet werden, sondern nur VDR und eine X11-Oberfläche mit xine. Dies soll Runlevel 7 sein.

Ich habe nun schon die entsprechenden Start-Scripte geschrieben und die passenden links nach /etc/init.d/rc7.d gesetzt:


K01X11_for_xine_for_VDR
K02VDR
K03lirc
K04kbd
K05alsasound
K06resmgr
K07syslog
S01syslog
S02resmgr
S03alsasound
S04kbd
S05lirc
S06VDR
S07X11_for_xine_for_VDR

Dabei sind VDR und X11_for_xine_for_VDR eigene Scripte die VDR bzw 'startx xine' starten. Wenn ich diese Scripte in Runlevel 3 ausführe dann funktionieren sie auch, allerdings wenn ich bei grub 'init 7' angebe, startet trotzdem runlevel 5 und wenn ich auf der Textkonsole von Runlevel 3 nach 7 wechsle dann schließt er nur die nicht mehr benötigten Dienste startet aber keine neuen wie VDR.

Muss ich die Runlevel noch irgendwo einrichten?? Oder fehlt ein wichtiger Dienst??

musketaquid
26.01.06, 18:29
Schau mal in /etc/inittab, da musst du runlevel 7 ergänzen.

baltasar
26.01.06, 19:22
Ich habe bereits die folgenden Änderungen vorgenommen:


# runlevel 6 is System reboot (Do not use this for initdefault!)
+# runlevel 7 is VDR
#


l6:6:wait:/etc/init.d/rc 6
+17:7:wait:/etc/init.d/rc 7

# what to do in single-user mode

muss ich nochwas ändern oder ist das so falsch??

musketaquid
27.01.06, 04:47
l6:6:wait:/etc/init.d/rc 6
+17:7:wait:/etc/init.d/rc 7

Hast du dich verschrieben? Ist das 17? Muss doch l7 sein, oder?

bla!zilla
27.01.06, 14:02
Jep, "l7" und nicht "+17".

baltasar
27.01.06, 16:00
ja unter kwrite sehen sich 1 und l aber auch ähnlich... hatte den Unterschied gar nicht bemerkt... muss mir wohl ne neue :cool: kaufen.

Habe es geändert, ist aber immer noch dasselbe Problem. :( Fehlt noch irgendwas??

Hier die beiden Scripte die ich hinzugefügt habe:

VDR:

#! /bin/sh
#
# /etc/init.d/VDR
#
### BEGIN INIT INFO
# Provides: VDR
# Required-Stop:
# Default-Start:
# Default-Stop:
# Description: VideoDiscRecorder
### END INIT INFO

. /etc/rc.status

# Determine the base and follow a runlevel link name.
#base=${0##*/}
#link=${base#*[SK][0-9][0-9]}

rc_reset
case "$1" in
start)
echo "Starting VDR..."
VDR-run_init
rc_status -v
;;
stop)
echo "Shutting down VDR"
killall vdr
rc_status -v
;;
restart)
## If first returns OK call the second, if first or
## second command fails, set echo return value.
$0 stop && $0 start
rc_status
;;
force-reload)
## If first returns OK call the second, if first or
## second command fails, set echo return value.
$0 stop; sleep 1 && $0 start
rc_status
;;
reload)
;;
status)
echo -n "Checking for VDR"
checkproc /usr/local/bin/vdr
rc_status -v
;;
*)
echo "Usage: $0 {start|stop|status|restart|reload}"
exit 1
;;
esac
rc_exit


X11_for_xine_for_VDR:


#! /bin/sh
#
# /etc/init.d/X11_for_xine_for_VDR
#
### BEGIN INIT INFO
# Provides: X11_for_xine_for_VDR
# Required-Stop:
# Default-Start:
# Default-Stop:
# Description: This script starts X11 and xine for using VDR
### END INIT INFO

. /etc/rc.status

# Determine the base and follow a runlevel link name.
#base=${0##*/}
#link=${base#*[SK][0-9][0-9]}

rc_reset
case "$1" in
start)
echo "Starting X11 and xine"
startx VDR_xine&
rc_status -v
;;
stop)
echo "Shutting down X11 and xine"
killall xine
killall X
rc_status -v
;;
restart)
## If first returns OK call the second, if first or
## second command fails, set echo return value.
$0 stop && $0 start
rc_status
;;
force-reload)
## If first returns OK call the second, if first or
## second command fails, set echo return value.
$0 stop; sleep 1 && $0 start
rc_status
;;
reload)
;;
status)
echo -n "Checking for xine"
checkproc /usr/local/bin/xine
rc_status -v
;;
*)
echo "Usage: $0 {start|stop|status|restart|reload}"
exit 1
;;
esac
rc_exit


Hatte einfach ein fertiges Script angepasst.

@ bla!zilla: Das + war nur zur Verdeutlichung dass ich das eingefügt habe, wie in diff-Dateien.

musketaquid
27.01.06, 16:31
Wenn du die Scripte manuell aus Runlevel 3 startest und das geht, dann liegt es wohl kaum an den scripten. Aber an der Reihenfolge vieleicht?

Auszug aus der README:
3. Switching runlevels.

When one switches from (for example) runlevel 2 to runlevel 3,
/etc/init.d/rc will first execute in alphabetical order all K
scripts for runlevel 3 (/etc/rc3.d/KXXxxxx) with as first argument
"stop" and then all S scripts for runlevel 3 (/etc/rc3.d/SXXxxxx)
with as first argument "start".

Das hieße bei dir, das alle Scripte erst gestoppt und dann gestartet werden, das ist doch unlogisch, also sollten deine K-Scripte nur Dienste sein, die du nicht brauchst.

baltasar
27.01.06, 21:25
aus welcher README hast du das??

habe mal mit runlevel 3 verglichen, da sind die K-Scripte auch dieselben wie die S-Scripte, mit der Ausnahme dass kbd nur ein Startscript hat.

Ich dachte das ist so, wenn man beispielsweise von 2 zu 3 wechselt, dass erst die ganzen /etc/init.d/rc2.d/K* ausgeführt werden und dann die /etc/init.d/rc3.d/S*. Bin mir aber nicht sicher.

musketaquid
28.01.06, 06:23
/usr/share/doc/sysv-rc/README.runlevels.gz
oder
/usr/share/doc/sysvinit/README.runlevels.gz

baltasar
03.02.06, 18:02
Habes aber noch einfacher hingekriegt...

nachdem man die inittab angepasst hat findet man den runlevel auch unter yast, so gehtes jetzt!

Trotzdem danke für die Hilfe!

stefan-tiger
03.02.06, 18:49
Habes aber noch einfacher hingekriegt...

nachdem man die inittab angepasst hat findet man den runlevel auch unter yast, so gehtes jetzt!

Trotzdem danke für die Hilfe!

Hätte man den eigenen Runlevel dann nicht gleich per Yast anlegen können?

obzidian
03.02.06, 19:19
OMG, die verflixte 7. Du bist ja mutig :ugly:

baltasar
10.02.06, 19:22
Hätte man den eigenen Runlevel dann nicht gleich per Yast anlegen können?

Also man findet den neuen Runlevel erst nach Anpassung der inittab... habe keinen Button zum neuen Runlevel erstellen gefunden...

Joey
17.03.06, 09:43
Hi, ich hab das selbe Problem wie du, allerdings konnte ich es über Yast nicht lösen, nach Runlevel 5 ist bei mir schluss. Muss man evtl. in der inittab noch andere Dinge eintragen?

MiGo
17.03.06, 14:44
Joey, wie sieht denn deine Inittab jetzt aus?

baltasar
17.03.06, 21:48
also meine inittab sieht jetzt so aus:


#
# /etc/inittab
#
# Copyright (c) 1996-2002 SuSE Linux AG, Nuernberg, Germany. All rights reserved.
#
# Author: Florian La Roche, 1996
# Please send feedback to http://www.suse.de/feedback
#
# This is the main configuration file of /sbin/init, which
# is executed by the kernel on startup. It describes what
# scripts are used for the different run-levels.
#
# All scripts for runlevel changes are in /etc/init.d/.
#
# This file may be modified by SuSEconfig unless CHECK_INITTAB
# in /etc/sysconfig/suseconfig is set to "no"
#

# The default runlevel is defined here
id:5:initdefault:

# First script to be executed, if not booting in emergency (-b) mode
si::bootwait:/etc/init.d/boot

# /etc/init.d/rc takes care of runlevel handling
#
# runlevel 0 is System halt (Do not use this for initdefault!)
# runlevel 1 is Single user mode
# runlevel 2 is Local multiuser without remote network (e.g. NFS)
# runlevel 3 is Full multiuser with network
# runlevel 4 is Not used
# runlevel 5 is Full multiuser with network and xdm
# runlevel 6 is System reboot (Do not use this for initdefault!)
# runlevel 7 is VDR
#
l0:0:wait:/etc/init.d/rc 0
l1:1:wait:/etc/init.d/rc 1
l2:2:wait:/etc/init.d/rc 2
l3:3:wait:/etc/init.d/rc 3
l4:4:wait:/etc/init.d/rc 4
l5:5:wait:/etc/init.d/rc 5
l6:6:wait:/etc/init.d/rc 6
l7:7:wait:/etc/init.d/rc 7

# what to do in single-user mode
ls:S:wait:/etc/init.d/rc S
~~:S:respawn:/sbin/sulogin

# what to do when CTRL-ALT-DEL is pressed
ca::ctrlaltdel:/sbin/shutdown -r -t 4 now

# special keyboard request (Alt-UpArrow)
# look into the kbd-0.90 docs for this
kb::kbrequest:/bin/echo "Keyboard Request -- edit /etc/inittab to let this work."

# what to do when power fails/returns
pf::powerwait:/etc/init.d/powerfail start
pn::powerfailnow:/etc/init.d/powerfail now
#pn::powerfail:/etc/init.d/powerfail now
po::powerokwait:/etc/init.d/powerfail stop

# for ARGO UPS
sh:12345:powerfail:/sbin/shutdown -h now THE POWER IS FAILING

# getty-programs for the normal runlevels
# <id>:<runlevels>:<action>:<process>
# The "id" field MUST be the same as the last
# characters of the device (after "tty").
1:2345:respawn:/sbin/mingetty --noclear tty1
2:2345:respawn:/sbin/mingetty tty2
3:2345:respawn:/sbin/mingetty tty3
4:2345:respawn:/sbin/mingetty tty4
5:2345:respawn:/sbin/mingetty tty5
6:2345:respawn:/sbin/mingetty tty6
#
#S0:12345:respawn:/sbin/agetty -L 9600 ttyS0 vt102

#
# Note: Do not use tty7 in runlevel 3, this virtual line
# is occupied by the programm xdm.
#

# This is for the package xdmsc, after installing and
# and configuration you should remove the comment character
# from the following line:
#7:3:respawn:+/etc/init.d/rx tty7


# modem getty.
# mo:235:respawn:/usr/sbin/mgetty -s 38400 modem

# fax getty (hylafax)
# mo:35:respawn:/usr/lib/fax/faxgetty /dev/modem

# vbox (voice box) getty
# I6:35:respawn:/usr/sbin/vboxgetty -d /dev/ttyI6
# I7:35:respawn:/usr/sbin/vboxgetty -d /dev/ttyI7

# end of /etc/inittab


Musst bei yast dann auch noch auf Expertenmodus gehen. Ist übrigens Suse 10.0, vll haben ältere diese Funktion noch nicht.

BSM
17.03.06, 22:21
Gut, dass die meisten Distributionen Runlevel 4 nicht benutzen... Aber das wäre ja langweilig.

Gruß Robert

baltasar
18.03.06, 12:02
Gut, dass die meisten Distributionen Runlevel 4 nicht benutzen... Aber das wäre ja langweilig.

Gruß Robert

Ja 4 ist ja auch ne blöde Zahl...

Außerdem brauchen wir ja ein paar neue Fragen der Menschheit, wieso nicht: Warum verwendet keiner Runlevel 4??

Aber wenigstens sind sich die Distributionen hier einig!