source: trunk/packs/dotfiles/Xsession @ 20517

Revision 20517, 2.3 KB checked in by rbasch, 20 years ago (diff)
Add the xkill-mozilla script to kill all mozilla instances running on the display, and invoke it at the end of Xsession, prior to destroying tokens, to prevent a stale lock file being left in place.
  • Property svn:executable set to *
Line 
1#!/bin/sh
2
3# Top level Xsession file for all users
4#
5# $Id: Xsession,v 1.6 2004-06-07 19:10:49 rbasch Exp $
6
7trap "kdestroy; unlog; fsid -u -f $USER; exit 0" 1 2 15
8
9initlib="/usr/athena/lib/init"
10defsession=$1
11defsessioncmd="$2"
12
13if [ -f .noignore ]; then
14        defsession=1;
15fi
16
17case $defsession in
181|4|7)
19        if [ -f .xsession ]; then
20                session=".xsession"
21        else
22                session="$initlib/xsession"
23        fi
24        case $defsession in
25        7)
26                session="$session dash"
27                ;;
28        esac
29        ;;
302)
31        session="$initlib/xsession -nocalls"
32        ;;
333)
34        session="xterm -ls -geometry 80x24+280+220 -display :0.0"
35        ;;
365)
37        session="$defsessioncmd"
38        ;;
39esac
40
41# Set the tty characteristics of the parent (console window)
42# Redirect stdin since some versions of stty use it instead of stdout.
43if [ "${hosttype}" = "decmips" ]; then
44  stty dec 0<&1 2>/dev/null
45else
46  stty sane 0<&1 2>/dev/null
47fi
48
49# Make random Athena modifications to keymap if required.
50
51test -f /usr/athena/lib/X11/keymaps/AthenaMods && \
52  xmodmap /usr/athena/lib/X11/keymaps/AthenaMods
53
54# Set X screensaver to noblanking to avoid power saving.
55xset s noblank
56
57# Only attempt using bugme if packs are actually available.
58if [ -x /usr/athena/bin/bugme ]; then
59        /usr/athena/bin/bugme $session
60else
61        $session
62fi
63
64status=$?
65if [ $status != 0 ]; then
66                echo ERROR:
67                echo "Xsession returned non-zero status."
68                echo ""
69                echo 'Select the login option to "Ignore your customizations"'
70                echo 'to login and repair your dot files.'
71                kdestroy                        # destroy tickets.
72                sleep 10
73                exit 1
74fi
75
76# Kill mozilla before destroying tokens so that it removes its lock file.
77$initlib/xkill-mozilla
78
79# Make gconfd flush settings to disk before destroying credentials.
80gconftool-2 --shutdown
81
82# Kill xscreensaver, to keep it from trying to restart when we send
83# it SIGHUP below.
84xscreensaver-command -exit > /dev/null 2>&1
85
86# Cannot detach homedir here, since this script is executed in the users
87# homedir.
88
89kdestroy                                # destroy tickets.
90cd /tmp
91unlog
92fsid -u -f $USER > /dev/null 2>&1
93
94# Send SIGHUP to processes which have our controlling tty open.
95ctty="`tty <&2 2>/dev/null`"
96if [ -c "$ctty" ]; then
97  trap "" HUP
98  case `uname` in
99  SunOS)
100    fuser -s HUP "$ctty" > /dev/null 2>&1
101    ;;
102  Linux)
103    fuser -k -HUP "$ctty" > /dev/null 2>&1
104    ;;
105  esac
106  trap HUP
107fi
108
109sleep 3                                 # let them see any messages (quickly)
110exit 0
Note: See TracBrowser for help on using the repository browser.