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