summaryrefslogtreecommitdiff
path: root/debian/schroot.init
blob: 187ff8c8739e9922f3f337924a6af303efb9731d (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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
#! /bin/sh
#
### BEGIN INIT INFO
# Provides:          schroot
# Required-Start:    $local_fs $network $remote_fs
# Required-Stop:
# Should-Start:      lvm
# Should-Stop:
# Default-Start:     S
# Default-Stop:
# Short-Description: Recover schroot sessions.
# Description:       Activate any persistent sessions after a reboot.
#                    Setup scripts will be run to mount filesystems and
#                    bring the chroot back to a working state.
### END INIT INFO
#
# Copyright © 2006-2007  Roger Leigh <rleigh@debian.org>
# Copyright © 2007       Federico Di Gregorio <fog@debian.org>
#
# schroot is free software: you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# schroot is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program.  If not, see
# <http://www.gnu.org/licenses/>.

SCHROOT=/usr/bin/schroot
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
NAME=schroot

. /lib/lsb/init-functions

test -x $SCHROOT || exit 0

# Include schroot defaults if available
if [ -f "/etc/default/$NAME" ] ; then
    . "/etc/default/$NAME"
fi

set -e

recover_sessions()
{
    log_daemon_msg "Recovering schroot sessions"
    for chroot in `$SCHROOT --all-sessions --list --quiet`
      do
      $SCHROOT --chroot=$chroot --recover-session || true
      log_progress_msg "$chroot"
    done
    log_end_msg 0
}

end_sessions()
{
    log_daemon_msg "Ending schroot sessions"
    for chroot in `$SCHROOT --all-sessions --list --quiet`
      do
      $SCHROOT --chroot=$chroot --end-session || true
      log_progress_msg "$chroot"
    done
    log_end_msg 0
}

case "$1" in
    start|restart|force-reload)
        if [ "$SESSIONS_RECOVER" = "end" ] ; then
            end_sessions
	else
            recover_sessions
	fi
	;;
    stop)
	;;
    status)
	;;
    *)
	N=/etc/init.d/$NAME
	echo "Usage: $N {start|stop|restart|force-reload|status}" >&2
	exit 1
	;;
esac

exit 0