Go to:
Gentoo Home
Documentation
Forums
Lists
Bugs
Planet
Store
Wiki
Get Gentoo!
Gentoo's Bugzilla – Attachment 205918 Details for
Bug 287504
xdm init script improvement for x11-apps/xinit-1.0.8-r8
Home
|
New
–
[Ex]
|
Browse
|
Search
|
Privacy Policy
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
The new init.d/xdm script
xdm.initd-4 (text/plain), 5.23 KB, created by
Enrico Tagliavini
on 2009-10-03 14:53:49 UTC
(
hide
)
Description:
The new init.d/xdm script
Filename:
MIME Type:
Creator:
Enrico Tagliavini
Created:
2009-10-03 14:53:49 UTC
Size:
5.23 KB
patch
obsolete
>#!/sbin/runscript ># Copyright 1999-2004 Gentoo Foundation ># Distributed under the terms of the GNU General Public License, v2 ># $Header: /var/cvsroot/gentoo-x86/x11-apps/xinit/files/xdm.initd-3,v 1.5 2009/09/24 17:07:56 williamh Exp $ > ># This is here to serve as a note to myself, and future developers. ># ># Any Display manager (gdm,kdm,xdm) has the following problem: if ># it is started before any getty, and no vt is specified, it will ># usually run on vt2. When the getty on vt2 then starts, and the ># DM is already started, the getty will take control of the keyboard, ># leaving us with a "dead" keyboard. ># ># Resolution: add the following line to /etc/inittab ># ># x:a:once:/etc/X11/startDM.sh ># ># and have /etc/X11/startDM.sh start the DM in daemon mode if ># a lock is present (with the info of what DM should be started), ># else just fall through. ># ># How this basically works, is the "a" runlevel is a additional ># runlevel that you can use to fork processes with init, but the ># runlevel never gets changed to this runlevel. Along with the "a" ># runlevel, the "once" key word means that startDM.sh will only be ># run when we specify it to run, thus eliminating respawning ># startDM.sh when "xdm" is not added to the default runlevel, as was ># done previously. ># ># This script then just calls "telinit a", and init will run ># /etc/X11/startDM.sh after the current runlevel completes (this ># script should only be added to the actual runlevel the user is ># using). ># ># Martin Schlemmer ># aka Azarah ># 04 March 2002 > > ># Start X Font Server before X >depend() { > need localmount xdm-setup > > # this should start as early as possible > # we can't do 'before *' as that breaks it > # (#139824) Start after ypbind and autofs for network authentication > # (#145219 #180163) Could use lirc mouse as input device > # (#70689 comment #92) Start after consolefont to avoid display corruption > after bootmisc consolefont modules netmount > after readahead-list ${NEED_SERV} > before alsasound > > # Start before X > use acpid consolekit hald xfs >} > >setup_dm() { > local MY_XDM="$(echo "${DISPLAYMANAGER}" | tr '[:upper:]' '[:lower:]')" > > # Load our root path from profile.env > # Needed for kdm > PATH="${PATH}:$(. /etc/profile.env; echo "${ROOTPATH}")" > > case "${MY_XDM}" in > kdm|kde|kde2|kde3) > EXE="$(which kdm)" > # kdm takes too long to create a pidfile for baselayout-2 > #PIDFILE=/var/run/kdm.pid > PIDFILE= > ;; > kdm-*) > EXE="/usr/kde/${MY_XDM#kdm-}/bin/kdm" > PIDFILE= > ;; > entrance*) > EXE=/usr/sbin/entranced > PIDFILE=/var/lib/entranced.pid > ;; > gdm|gnome) > EXE=/usr/bin/gdm > [ "${RC_UNAME}" != "Linux" ] && NAME=gdm-binary > PIDFILE=/var/run/gdm.pid > ;; > wdm) > EXE=/usr/bin/wdm > PIDFILE= > ;; > gpe) > EXE=/usr/bin/gpe-dm > PIDFILE=/var/run/gpe-dm.pid > ;; > *) > EXE= > # Fix #65586, where MY_XDM is empty so EXE=somedir > [ -x "/usr/bin/${MY_XDM}" ] && [ -f "/usr/bin/${MY_XDM}" ] \ > && EXE="/usr/bin/${MY_XDM}" > if [ -z "${EXE}" ] ; then > EXE=/usr/bin/xdm > PIDFILE=/var/run/xdm.pid > fi > ;; > esac > > if ! [ -x "${EXE}" ] ; then > EXE=/usr/bin/xdm > PIDFILE=/var/run/xdm.pid > if ! [ -x "/usr/bin/xdm" ] ; then > echo "ERROR: Please set your DISPLAYMANAGER variable in /etc/conf.d/xdm," > echo " or install x11-apps/xdm package" > eend 255 > fi > fi >} > ># Check to see if something is defined on our VT >vtstatic() { > if [ -e /etc/inittab ] ; then > grep -Eq "^[^#]+.*\<tty$1\>" /etc/inittab > elif [ -e /etc/ttys ] ; then > grep -q "^ttyv$(($1 - 1))" /etc/ttys > else > return 1 > fi >} > >start() { > local EXE= NAME= PIDFILE= > setup_dm > > if [ -f /etc/init.d/.noxdm -o -f /tmp/.noxdm ] ; then > einfo "Skipping ${EXE}, /etc/init.d/.noxdm or /tmp/.noxdm found" > rm /etc/init.d/.noxdm /tmp/.noxdm > return 0 > fi > > ebegin "Setting up ${EXE##*/}" > #save the prefered DM > save_options "service" "${EXE}" > save_options "name" "${NAME}" > save_options "pidfile" "${PIDFILE}" > > if [ -n "${CHECKVT-y}" ] ; then > if vtstatic "${CHECKVT:-7}" ; then > if [ -x /sbin/telinit ] && [ "${SOFTLEVEL}" != "BOOT" ] && [ "${RC_SOFTLEVEL}" != "BOOT" ] ; then > ewarn "Something is already defined on VT ${CHECKVT:-7}, will start X later" > telinit a >/dev/null 2>/dev/null > return 0 > else > eerror "Something is already defined on VT ${CHECKVT:-7}, not starting" > return 1 > fi > fi > fi > > /etc/X11/startDM.sh > eend 0 >} > >stop() { > local retval=0 > local curvt= > if [ -t 0 ] ; then > if type fgconsole >/dev/null 2>/dev/null ; then > curvt="$(fgconsole 2>/dev/null)" > else > curvt="$(tty)" > case "${curvt}" in > /dev/ttyv[0-9]*) curvt="${curvt#/dev/ttyv*}" ;; > *) curvt= ;; > esac > fi > fi > local myexe="$(get_options "service")" > local myname="$(get_options "name")" > local mypidfile="$(get_options "pidfile")" > local myservice=${myexe##*/} > > [ -z "${myexe}" ] && return 0 > > ebegin "Stopping ${myservice}" > > if start-stop-daemon --quiet --test --stop --exec "${myexe}" ; then > start-stop-daemon --stop --exec "${myexe}" --retry TERM/5/TERM/5 \ > ${mypidfile:+--pidfile} ${mypidfile} \ > ${myname:+--name} ${myname} > retval=$? > fi > > # switch back to original vt > if [ -n "${curvt}" ] ; then > if type chvt >/dev/null 2>/dev/null ; then > chvt "${curvt}" > else > vidcontrol -s "$((${curvt} + 1))" > fi > fi > eend ${retval} "Error stopping ${myservice}" > > return ${retval} >} > ># vim: set ts=4 :
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Raw
Actions:
View
Attachments on
bug 287504
: 205918 |
205919
|
205921