#! /bin/sh # ### BEGIN INIT INFO # Provides: schroot # Required-Start: $local_fs $syslog $network $remote_fs # Required-Stop: $local_fs $syslog $network $remote_fs # Should-Start: lvm # Should-Stop: # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # 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-2013 Roger Leigh # Copyright © 2007 Federico Di Gregorio # # 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 # . 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) # Delete /var/lock/schroot if it's not root:root 0700, or if # it's not a directory. if [ -e /var/lock/schroot ]; then if [ "$(stat -c "%u %g %a" /var/lock/schroot)" != "0 0 700" ]; then rm -rf /var/lock/schroot fi if [ ! -d /var/lock/schroot ]; then rm -rf /var/lock/schroot fi fi if [ ! -d /var/lock/schroot ]; then mkdir -m 0700 /var/lock/schroot fi if [ "$START_ACTION" = "end" ] || [ "$SESSIONS_RECOVER" = "end" ] ; then end_sessions else recover_sessions fi ;; stop) if [ "$STOP_ACTION" = "end" ] ; then end_sessions fi ;; status) ;; *) N=/etc/init.d/$NAME echo "Usage: $N {start|stop|restart|force-reload|status}" >&2 exit 1 ;; esac exit 0