xref: /aosp_15_r20/external/selinux/mcstrans/src/mcstrans.init (revision 2d543d20722ada2425b5bdab9d0d1d29470e7bba)
1*2d543d20SAndroid Build Coastguard Worker#!/bin/bash
2*2d543d20SAndroid Build Coastguard Worker#
3*2d543d20SAndroid Build Coastguard Worker# mcstransd        This starts and stops mcstransd
4*2d543d20SAndroid Build Coastguard Worker#
5*2d543d20SAndroid Build Coastguard Worker# chkconfig: - 08 87
6*2d543d20SAndroid Build Coastguard Worker# description: This starts the SELinux Context Translation System Daemon
7*2d543d20SAndroid Build Coastguard Worker#
8*2d543d20SAndroid Build Coastguard Worker# processname: /sbin/mcstransd
9*2d543d20SAndroid Build Coastguard Worker# pidfile: /var/run/mcstransd.pid
10*2d543d20SAndroid Build Coastguard Worker#
11*2d543d20SAndroid Build Coastguard Worker# Return values according to LSB for all commands but status:
12*2d543d20SAndroid Build Coastguard Worker# 0 - success
13*2d543d20SAndroid Build Coastguard Worker# 1 - generic or unspecified error
14*2d543d20SAndroid Build Coastguard Worker# 2 - invalid or excess argument(s)
15*2d543d20SAndroid Build Coastguard Worker# 3 - unimplemented feature (e.g. "reload")
16*2d543d20SAndroid Build Coastguard Worker# 4 - insufficient privilege
17*2d543d20SAndroid Build Coastguard Worker# 5 - program is not installed
18*2d543d20SAndroid Build Coastguard Worker# 6 - program is not configured
19*2d543d20SAndroid Build Coastguard Worker# 7 - program is not running
20*2d543d20SAndroid Build Coastguard Worker
21*2d543d20SAndroid Build Coastguard WorkerPATH=/sbin:/bin:/usr/bin:/usr/sbin
22*2d543d20SAndroid Build Coastguard Workerprog="mcstransd"
23*2d543d20SAndroid Build Coastguard Workerlockfile=/var/lock/subsys/$prog
24*2d543d20SAndroid Build Coastguard Worker
25*2d543d20SAndroid Build Coastguard Worker# Source function library.
26*2d543d20SAndroid Build Coastguard Worker. /etc/init.d/functions
27*2d543d20SAndroid Build Coastguard Worker
28*2d543d20SAndroid Build Coastguard Worker# Allow anyone to run status
29*2d543d20SAndroid Build Coastguard Workerif [ "$1" = "status" ] ; then
30*2d543d20SAndroid Build Coastguard Worker	status $prog
31*2d543d20SAndroid Build Coastguard Worker	RETVAL=$?
32*2d543d20SAndroid Build Coastguard Worker	exit $RETVAL
33*2d543d20SAndroid Build Coastguard Workerfi
34*2d543d20SAndroid Build Coastguard Worker
35*2d543d20SAndroid Build Coastguard Worker# Check that we are root ... so non-root users stop here
36*2d543d20SAndroid Build Coastguard Workertest $EUID = 0  || exit 4
37*2d543d20SAndroid Build Coastguard Worker
38*2d543d20SAndroid Build Coastguard Worker# If selinux is not enabled, return success
39*2d543d20SAndroid Build Coastguard Workertest -x /usr/sbin/selinuxenabled && /usr/sbin/selinuxenabled || exit 0
40*2d543d20SAndroid Build Coastguard Worker
41*2d543d20SAndroid Build Coastguard WorkerRETVAL=0
42*2d543d20SAndroid Build Coastguard Worker
43*2d543d20SAndroid Build Coastguard Workerstart(){
44*2d543d20SAndroid Build Coastguard Worker	test -x /sbin/mcstransd  || exit 5
45*2d543d20SAndroid Build Coastguard Worker	echo -n $"Starting $prog: "
46*2d543d20SAndroid Build Coastguard Worker	if status $prog > /dev/null; then
47*2d543d20SAndroid Build Coastguard Worker		echo -n $"$prog: already running"
48*2d543d20SAndroid Build Coastguard Worker		failure
49*2d543d20SAndroid Build Coastguard Worker		echo
50*2d543d20SAndroid Build Coastguard Worker		return 1
51*2d543d20SAndroid Build Coastguard Worker	fi
52*2d543d20SAndroid Build Coastguard Worker
53*2d543d20SAndroid Build Coastguard Worker	unset HOME MAIL USER USERNAME
54*2d543d20SAndroid Build Coastguard Worker	daemon $prog "$EXTRAOPTIONS"
55*2d543d20SAndroid Build Coastguard Worker	RETVAL=$?
56*2d543d20SAndroid Build Coastguard Worker	echo
57*2d543d20SAndroid Build Coastguard Worker	if test $RETVAL = 0 ; then
58*2d543d20SAndroid Build Coastguard Worker        	touch $lockfile
59*2d543d20SAndroid Build Coastguard Worker	fi
60*2d543d20SAndroid Build Coastguard Worker	return $RETVAL
61*2d543d20SAndroid Build Coastguard Worker}
62*2d543d20SAndroid Build Coastguard Worker
63*2d543d20SAndroid Build Coastguard Workerstop(){
64*2d543d20SAndroid Build Coastguard Worker	echo -n $"Stopping $prog: "
65*2d543d20SAndroid Build Coastguard Worker	killproc $prog
66*2d543d20SAndroid Build Coastguard Worker	RETVAL=$?
67*2d543d20SAndroid Build Coastguard Worker	echo
68*2d543d20SAndroid Build Coastguard Worker	rm -f $lockfile
69*2d543d20SAndroid Build Coastguard Worker	return $RETVAL
70*2d543d20SAndroid Build Coastguard Worker}
71*2d543d20SAndroid Build Coastguard Worker
72*2d543d20SAndroid Build Coastguard Workerrestart(){
73*2d543d20SAndroid Build Coastguard Worker	stop
74*2d543d20SAndroid Build Coastguard Worker	start
75*2d543d20SAndroid Build Coastguard Worker}
76*2d543d20SAndroid Build Coastguard Worker
77*2d543d20SAndroid Build Coastguard Workercondrestart(){
78*2d543d20SAndroid Build Coastguard Worker	[ -e $lockfile ] && restart
79*2d543d20SAndroid Build Coastguard Worker	return 0
80*2d543d20SAndroid Build Coastguard Worker}
81*2d543d20SAndroid Build Coastguard Worker
82*2d543d20SAndroid Build Coastguard Worker
83*2d543d20SAndroid Build Coastguard Worker# See how we were called.
84*2d543d20SAndroid Build Coastguard Workercase "$1" in
85*2d543d20SAndroid Build Coastguard Worker    start)
86*2d543d20SAndroid Build Coastguard Worker	start
87*2d543d20SAndroid Build Coastguard Worker	;;
88*2d543d20SAndroid Build Coastguard Worker    stop)
89*2d543d20SAndroid Build Coastguard Worker	stop
90*2d543d20SAndroid Build Coastguard Worker	;;
91*2d543d20SAndroid Build Coastguard Worker    restart|force-reload)
92*2d543d20SAndroid Build Coastguard Worker	restart
93*2d543d20SAndroid Build Coastguard Worker	;;
94*2d543d20SAndroid Build Coastguard Worker    condrestart)
95*2d543d20SAndroid Build Coastguard Worker	condrestart
96*2d543d20SAndroid Build Coastguard Worker	;;
97*2d543d20SAndroid Build Coastguard Worker    *)
98*2d543d20SAndroid Build Coastguard Worker	echo $"Usage: $0 {start|stop|status|restart|force-reload|condrestart}"
99*2d543d20SAndroid Build Coastguard Worker	RETVAL=3
100*2d543d20SAndroid Build Coastguard Workeresac
101*2d543d20SAndroid Build Coastguard Worker
102*2d543d20SAndroid Build Coastguard Workerexit $RETVAL
103