1#!/bin/sh
2#
3# restorecond:		Daemon used to maintain path file context
4#
5# chkconfig:	- 12 87
6# description:	restorecond uses inotify to look for creation of new files \
7# listed in the /etc/selinux/restorecond.conf file, and restores the \
8# correct security context.
9#
10# processname: /usr/sbin/restorecond
11# config: /etc/selinux/restorecond.conf
12# pidfile: /var/run/restorecond.pid
13#
14# Return values according to LSB for all commands but status:
15# 0 - success
16# 1 - generic or unspecified error
17# 2 - invalid or excess argument(s)
18# 3 - unimplemented feature (e.g. "reload")
19# 4 - insufficient privilege
20# 5 - program is not installed
21# 6 - program is not configured
22# 7 - program is not running
23
24PATH=/sbin:/bin:/usr/bin:/usr/sbin
25
26# Source function library.
27. /etc/rc.d/init.d/functions
28
29[ -x /usr/sbin/selinuxenabled ] && /usr/sbin/selinuxenabled || exit 7
30
31# Check that we are root ... so non-root users stop here
32test $EUID = 0  || exit 4
33
34test -x /usr/sbin/restorecond  || exit 5
35test -f /etc/selinux/restorecond.conf  || exit 6
36
37RETVAL=0
38
39start()
40{
41        echo -n $"Starting restorecond: "
42	unset HOME MAIL USER USERNAME
43        daemon /usr/sbin/restorecond
44	RETVAL=$?
45	touch /var/lock/subsys/restorecond
46        echo
47	return $RETVAL
48}
49
50stop()
51{
52        echo -n $"Shutting down restorecond: "
53	killproc restorecond
54	RETVAL=$?
55	rm -f  /var/lock/subsys/restorecond
56        echo
57	return $RETVAL
58}
59
60restart()
61{
62    stop
63    start
64}
65
66# See how we were called.
67case "$1" in
68  start)
69	start
70        ;;
71  stop)
72	stop
73        ;;
74  status)
75	status restorecond
76	RETVAL=$?
77	;;
78  force-reload|restart|reload)
79	restart
80	;;
81  condrestart)
82	[ -e /var/lock/subsys/restorecond ] && restart || :
83	;;
84  *)
85        echo $"Usage: $0 {start|stop|restart|force-reload|status|condrestart}"
86        RETVAL=3
87esac
88
89exit $RETVAL
90