Home | History | Annotate | Download | only in sandbox
      1 #!/bin/bash
      2 ## BEGIN INIT INFO
      3 # Provides: sandbox
      4 # Default-Start: 3 4 5
      5 # Default-Stop: 0 1 2 3 4 6
      6 # Required-Start:
      7 #              
      8 ## END INIT INFO
      9 # sandbox:        Set up / mountpoint to be shared, /var/tmp, /tmp, /home/sandbox unshared
     10 #
     11 # chkconfig: 345 1 99
     12 #
     13 # description: sandbox, xguest and other apps that want to use pam_namespace \
     14 #              require this script be run at boot.  This service script does \
     15 #              not actually run any service but sets up: \
     16 #              / to be shared by any app that starts a separate namespace
     17 #              If you do not use sandbox, xguest or pam_namespace you can turn \
     18 #              this service off.\
     19 #
     20 
     21 # Source function library.
     22 . /etc/init.d/functions
     23 
     24 LOCKFILE=/var/lock/subsys/sandbox
     25 
     26 base=${0##*/}
     27 
     28 start() {
     29 	echo -n "Starting sandbox"
     30 
     31 	[ -f "$LOCKFILE" ] && return 0
     32 
     33 	touch $LOCKFILE
     34 	mount --make-rshared / || return $? 
     35 	return 0
     36 }
     37 
     38 stop() {
     39 	echo -n "Stopping sandbox"
     40 
     41 	[ -f "$LOCKFILE" ] || return 1
     42 }
     43 
     44 status() {
     45 	if [ -f "$LOCKFILE" ]; then 
     46 	    echo "$base is running"
     47 	else
     48 	    echo "$base is stopped"
     49 	fi
     50 	exit 0
     51 }
     52 
     53 case "$1" in
     54     restart)
     55 	start && success || failure
     56 	;;
     57 
     58     start)
     59 	start && success || failure
     60 	echo
     61 	;;
     62 
     63     stop)
     64 	stop && success || failure
     65 	echo
     66 	;;
     67 
     68     status)
     69 	status
     70 	;;
     71 
     72     *)
     73 	echo $"Usage: $0 {start|stop|status|restart}"
     74 	exit 3
     75 	;;
     76 esac
     77