summaryrefslogtreecommitdiffstats
path: root/debian/screen.init
blob: 3eb41855c4dbea7e3bda69406d8c8e8d0f5f3be4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#!/bin/sh
# $Id: init,v 1.3 2004/03/16 01:43:45 zal Exp $
#
# Script to remove stale screen named pipes on bootup.
#

### BEGIN INIT INFO
# Provides:          screen-cleanup
# Required-Start:    $remote_fs
# Required-Stop:     $remote_fs
# Default-Start:     S
# Default-Stop:
# Short-Description: screen sessions cleaning
# Description: Cleans up the screen session directory and fixes its
#  permissions if needed.
### END INIT INFO

set -e

test -f /usr/bin/screen || exit 0

SCREENDIR=/run/screen

case "$1" in
start)
    if test -L $SCREENDIR || ! test -d $SCREENDIR; then
        rm -f $SCREENDIR
        mkdir $SCREENDIR
        chown root:utmp $SCREENDIR
        [ -x /sbin/restorecon ] && /sbin/restorecon $SCREENDIR
    fi
    find $SCREENDIR -type p -delete
# If the local admin has used dpkg-statoverride to install the screen
# binary with different set[ug]id bits, change the permissions of
# $SCREENDIR accordingly
    BINARYPERM=`stat -c%a /usr/bin/screen`
    if [ "$BINARYPERM" -ge 4000 ]; then
        chmod 0755 $SCREENDIR
    elif [ "$BINARYPERM" -ge 2000 ]; then
        chmod 0775 $SCREENDIR
    else
        chmod 1777 $SCREENDIR
    fi
    ;;
stop|restart|reload|force-reload)
    ;;
esac

exit 0