分页: 1 / 1

[问题]kubuntu 7.10 kdm不能自动启动

发表于 : 2007-11-04 18:38
foDDYY
新安装的7.10 Kubuntu,但不知何故,kdm不能自动启动,开始提示No resume image,后来在Google上搜索,按照一些建议把/etc/initramfs-tools/conf.d/resume里的设备名改为了UUID,然后那个No Resume Image的提示倒是没有了,但仍然是直接进入命令行模式。

下面贴出/etc/rc2.d/S13kdm文件的内容给大家参考:
#!/bin/sh
### BEGIN INIT INFO
# Provides: x-display-manager kdm
# Required-Start: $local_fs $remote_fs
# Required-Stop: $local_fs $remote_fs
# Should-Start: console-screen
# Should-Stop: console-screen
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: X display manager for KDE
# Description: KDM manages a collection of X servers, which may be on the local host or remote machines.
### END INIT INFO
# /etc/init.d/kdm: start or stop the X display manager
# Script originally stolen from the xdm package
#
# description: K Display Manager
#
set -e

# To start kdm even if it is not the default display manager, change
# HEED_DEFAULT_DISPLAY_MANAGER to "false."
HEED_DEFAULT_DISPLAY_MANAGER=true
DEFAULT_DISPLAY_MANAGER_FILE=/etc/X11/default-display-manager

PATH=/bin:/usr/bin:/sbin:/usr/sbin
DAEMON=/usr/bin/kdm
PIDFILE=/var/run/kdm.pid
UPGRADEFILE=/var/run/kdm.upgrade

# parameters to support kdm customization
KDMRC=/etc/kde3/kdm/kdmrc
BACKGROUNDRC=/etc/kde3/kdm/backgroundrc

#if configuration is changed by kdmtheme or other tools, don't do magick
if grep -q "Theme=@@@ToBeReplacedByDesktopBase@@@" ${KDMRC} && grep -q "Wallpaper=default_blue.jpg" ${BACKGROUNDRC}
then



KDMOVERRIDEDIR=/etc/default/kdm.d
KDMCFGDIR=/var/run/kdm
KDMCFG=$KDMCFGDIR/kdmrc
BACKGROUNDCFG=$KDMCFGDIR/backgroundrc

test -x $DAEMON || exit 0

# uncomment, if you want auto-logon to be runlevel-dependant
#test "$runlevel" || { runlevel=`runlevel`; runlevel=${runlevel#* }; }
#test "$runlevel" = 4 && ARG=-autolog || ARG=-noautolog

# uncomment, if you want tons of debug info in your syslog
#ARG="$ARG -debug 255"

# we use an alternative kdm master configuration file
ARG="$ARG -config $KDMCFG"

# we source overrides. run-parts sorts the list in a predictable order
if [ -d "$KDMOVERRIDEDIR" ]; then
for part in $(run-parts --list "$KDMOVERRIDEDIR" 2>/dev/null || true); do
. "$part"
done
fi

# we generate kdm configuration files
genkdmconf --in $KDMCFGDIR 1> /dev/null

# we update kdm configuration files (only overridden values)
[ -n "$USEBACKGROUND" ] && sed -i "s|^#\?UseBackground=.*|UseBackground=$USEBACKGROUND|" $KDMCFG
[ -n "$BACKGROUNDCFG" ] && sed -i "s|^#\?BackgroundCfg=.*|BackgroundCfg=$BACKGROUNDCFG|" $KDMCFG
[ -n "$USETHEME" ] && sed -i "s|^#\?UseTheme=.*|UseTheme=$USETHEME|" $KDMCFG
[ -n "$THEME" ] && sed -i "s|^#\?Theme=.*|Theme=$THEME|" $KDMCFG
[ -n "$WALLPAPER" ] && sed -i "s|^#\?Wallpaper=.*|Wallpaper=`readlink -f $WALLPAPER`|" $BACKGROUNDCFG

# we get the system default locale if USESYSTEMLOCALE is set to true
$USESYSTEMLOCALE && sed -i "s|^#\?Language=.*|Language=`grep -re "LANG=" /etc/default/locale | awk 'BEGIN { FS = "[\\"|.]" } { print $2 }'`|" $KDMCFG

fi
# autologin overrides are useful for live debian environment
if [ -n "$AUTOLOGINUSER" ]; then
sed -i "s|^#\?AutoLoginEnable=.*|AutoLoginEnable=true|" $KDMCFG
sed -i "s|^#\?AutoLoginUser=.*|AutoLoginUser=$AUTOLOGINUSER|" $KDMCFG
fi
[ -n "$AUTOLOGINDELAY" ] && sed -i "s|^#\?AutoLoginDelay=.*|AutoLoginDelay=$AUTOLOGINDELAY|" $KDMCFG
[ -n "$AUTOLOGINAGAIN" ] && sed -i "s|^#\?AutoLoginAgain=.*|AutoLoginAgain=$AUTOLOGINAGAIN|" $KDMCFG
[ -n "$AUTOLOGINLOCKED" ] && sed -i "s|^#\?AutoLoginLocked=.*|AutoLoginLocked=$AUTOLOGINLOCKED|" $KDMCFG

# If we upgraded the daemon, we can't use the --exec argument to
# start-stop-daemon since the inode will have changed. The risk here is that
# in a situation where the daemon died, its pidfile was not cleaned up, and
# some other process is now running under that pid, start-stop-daemon will send
# signals to an innocent process. However, this seems like a corner case.
# C'est la vie!
if [ -e $UPGRADEFILE ]; then
SSD_ARGS="--pidfile $PIDFILE --startas $DAEMON"
else
SSD_ARGS="--pidfile $PIDFILE --exec $DAEMON"
fi

stillrunning () {
if expr "$(cat /proc/$DAEMONPID/cmdline 2> /dev/null)" : "$DAEMON" > /dev/null 2>&1; then
true
else
# if the daemon does not remove its own pidfile, we will
rm -f $PIDFILE $UPGRADEFILE
false
fi;
}

case "$1" in
start)
if [ -e $DEFAULT_DISPLAY_MANAGER_FILE ] &&
[ "$HEED_DEFAULT_DISPLAY_MANAGER" = "true" ] &&
[ "$(cat $DEFAULT_DISPLAY_MANAGER_FILE)" != "$DAEMON" ]; then
echo "Not starting K Display Manager (kdm); it is not the default display manager."
else
# if usplash is runing, make sure to stop it now, yes "start" kills it.
if pidof usplash > /dev/null; then
DO_NOT_SWITCH_VT=yes /etc/init.d/usplash start
fi

echo -n "Starting K Display Manager: kdm"
start-stop-daemon --start --quiet $SSD_ARGS -- $ARG || echo -n " already running"
echo "."
fi
;;

restart)
/etc/init.d/kdm stop
if [ -f $PIDFILE ]; then
if stillrunning; then
exit 1
fi
fi
/etc/init.d/kdm start
;;

reload)
echo -n "Reloading K Display Manager configuration..."
if start-stop-daemon --stop --signal 1 --quiet $SSD_ARGS; then
echo "done."
else
echo "kdm not running."
fi
;;

force-reload)
/etc/init.d/kdm reload
;;

stop)
echo -n "Stopping K Display Manager: kdm"
if [ ! -f $PIDFILE ]; then
echo " not running ($PIDFILE not found)."
exit 0
else
DAEMONPID=$(cat $PIDFILE | tr -d '[:blank:]')
KILLCOUNT=1
if [ ! -e $UPGRADEFILE ]; then
if start-stop-daemon --stop --quiet $SSD_ARGS; then
# give kdm's signal handler a second to catch its breath
sleep 1
else
echo -n " not running"
fi
fi
while [ $KILLCOUNT -le 5 ]; do
if stillrunning; then
kill $DAEMONPID
else
break
fi
sleep 1
KILLCOUNT=$(( $KILLCOUNT + 1 ))
done
if stillrunning; then
echo -n " not responding to TERM signal (pid $DAEMONPID)"
else
rm -f $UPGRADEFILE
fi
fi
echo "."

# Launches usplash on shutdown
if ( `grep -q '\( \|^\)splash\( \|$\)' /proc/cmdline` && `which usplash_down >/dev/null` ) ; then
usplash_down
fi
;;

*)
echo "Usage: /etc/init.d/kdm {start|stop|restart|reload|force-reload}"
exit 1
;;
esac

exit 0