diff options
author | Michele Calgaro <[email protected]> | 2020-11-15 21:15:11 +0800 |
---|---|---|
committer | Michele Calgaro <[email protected]> | 2020-11-15 21:15:11 +0800 |
commit | 98095beb82f000d888dfa15bada80376c48df837 (patch) | |
tree | dadbf7de3432fa5cbf95c42733d19d5cf0508034 /dilos/core/tdebase/debian/tdm.init.2 | |
parent | f3d5de18f2bdf89d5923d560420ae23cac051cb8 (diff) | |
download | tde-packaging-98095beb82f000d888dfa15bada80376c48df837.tar.gz tde-packaging-98095beb82f000d888dfa15bada80376c48df837.zip |
DEB: adjusted to new 'core' folder for main packages.
Signed-off-by: Michele Calgaro <[email protected]>
Diffstat (limited to 'dilos/core/tdebase/debian/tdm.init.2')
-rw-r--r-- | dilos/core/tdebase/debian/tdm.init.2 | 202 |
1 files changed, 202 insertions, 0 deletions
diff --git a/dilos/core/tdebase/debian/tdm.init.2 b/dilos/core/tdebase/debian/tdm.init.2 new file mode 100644 index 000000000..664bbccb8 --- /dev/null +++ b/dilos/core/tdebase/debian/tdm.init.2 @@ -0,0 +1,202 @@ +#!/bin/sh +### BEGIN INIT INFO +# Provides: x-display-manager tdm +# Required-Start: $local_fs $remote_fs +# Required-Stop: $local_fs $remote_fs +# Should-Start: console-screen kbd acpid hal krb5-kdc ypbind +# Should-Stop: console-screen kbd +# Default-Start: 2 3 4 5 +# Default-Stop: 0 1 6 +# Short-Description: X display manager for Trinity +# Description: TDM manages a collection of X servers, which may be on the local host or remote machines. +### END INIT INFO +# /etc/init.d/tdm: start or stop the X display manager +# Script originally stolen from the xdm package +# +# description: Trinity Display Manager +# + +. /lib/lsb/init-functions + +set -e + +# To start tdm 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 + +TDEDIRS=/opt/trinity/ +PATH=/opt/trinity/bin:/bin:/usr/bin:/sbin:/usr/sbin +DAEMON=/opt/trinity/bin/tdm +PIDFILE=/var/run/tdm.pid +UPGRADEFILE=/var/run/tdm.upgrade + +# parameters to support tdm customization +TDMRC=/etc/trinity/tdm/tdmrc +BACKGROUNDRC=/etc/trinity/tdm/backgroundrc + +#if configuration is changed by tdmtheme or other tools, don't do magick +if grep -q "Theme=@@@ToBeReplacedByDesktopBase@@@" ${TDMRC} && grep -q "Wallpaper=default_blue.jpg" ${BACKGROUNDRC} +then + + + +TDMOVERRIDEDIR=/etc/default/tdm-trinity.d +TDMCFGDIR=/var/run/tdm-trinity +TDMCFG=$TDMCFGDIR/tdmrc +BACKGROUNDCFG=$TDMCFGDIR/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 tdm master configuration file +ARG="$ARG -config $TDMCFG" + +# we source overrides. run-parts sorts the list in a predictable order +if [ -d "$TDMOVERRIDEDIR" ]; then + for part in $(run-parts --list "$TDMOVERRIDEDIR" 2>/dev/null || true); do + . "$part" + done +fi + +# we generate tdm configuration files +gentdmconf --in $TDMCFGDIR 1> /dev/null + +# we update tdm configuration files (only overridden values) +[ -n "$USEBACKGROUND" ] && sed -i "s|^#\?UseBackground=.*|UseBackground=$USEBACKGROUND|" $TDMCFG +[ -n "$BACKGROUNDCFG" ] && sed -i "s|^#\?BackgroundCfg=.*|BackgroundCfg=$BACKGROUNDCFG|" $TDMCFG +[ -n "$USETHEME" ] && sed -i "s|^#\?UseTheme=.*|UseTheme=$USETHEME|" $TDMCFG +[ -n "$THEME" ] && sed -i "s|^#\?Theme=.*|Theme=$THEME|" $TDMCFG +[ -n "$COMPOSITOR" ] && sed -i "s|^#\?Compositor=.*|Compositor=$COMPOSITOR|" $TDMCFG +[ -n "$WALLPAPER" ] && sed -i "s|^#\?Wallpaper=.*|Wallpaper=`readlink -f $WALLPAPER`|" $BACKGROUNDCFG + + +fi +# autologin overrides are useful for live debian environment +if [ -n "$AUTOLOGINUSER" ]; then + sed -i "s|^#\?AutoLoginEnable=.*|AutoLoginEnable=true|" $TDMCFG + sed -i "s|^#\?AutoLoginUser=.*|AutoLoginUser=$AUTOLOGINUSER|" $TDMCFG +fi +[ -n "$AUTOLOGINDELAY" ] && sed -i "s|^#\?AutoLoginDelay=.*|AutoLoginDelay=$AUTOLOGINDELAY|" $TDMCFG +[ -n "$AUTOLOGINAGAIN" ] && sed -i "s|^#\?AutoLoginAgain=.*|AutoLoginAgain=$AUTOLOGINAGAIN|" $TDMCFG +[ -n "$AUTOLOGINLOCKED" ] && sed -i "s|^#\?AutoLoginLocked=.*|AutoLoginLocked=$AUTOLOGINLOCKED|" $TDMCFG + +# 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 + log_warning_msg "Not starting Trinity Display Manager (tdm); it is not the default display manager." + log_action_end_msg 0 + else + log_action_begin_msg "Starting Trinity Display Manager: tdm" + if start-stop-daemon --start --quiet $SSD_ARGS -- $ARG; then + log_action_end_msg 0 + else + log_action_end_msg 0 + log_warning_msg "Trinity Display Manager (tdm) already running" + fi + fi + ;; + + restart) + /etc/init.d/tdm stop + if [ -f $PIDFILE ]; then + if stillrunning; then + exit 1 + fi + fi + /etc/init.d/tdm start + ;; + + reload) + log_action_begin_msg "Reloading Trinity Display Manager configuration..." + if start-stop-daemon --stop --signal 1 --quiet $SSD_ARGS; then + log_action_end_msg 0 + else + log_action_end_msg 1 + log_failure_msg "tdm not running." + fi + ;; + + force-reload) + /etc/init.d/tdm reload + ;; + + stop) + log_action_begin_msg "Stopping Trinity Display Manager: tdm" + if [ ! -f $PIDFILE ]; then + log_action_end_msg 0 + log_failure_msg "Trinity Display Manager (tdm) 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 tdm's signal handler a second to catch its breath + sleep 1 + else + log_action_end_msg 0 + log_failure_msg "Trinity Display Manager (tdm) 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 + log_action_end_msg 1 + log_failure_msg "Trinity Display Manager (tdm) not responding to TERM signal (pid $DAEMONPID)" + else + rm -f $UPGRADEFILE + fi + fi + log_action_end_msg 0 + + # Launches usplash on shutdown + if ( `grep -q '\( \|^\)splash\( \|$\)' /proc/cmdline` && `which usplash_down >/dev/null` ) ; then + usplash_down + fi + ;; + + *) + echo "Usage: /etc/init.d/tdm {start|stop|restart|reload|force-reload}" + exit 1 + ;; +esac + +exit 0 |