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