Subversion Repositories configs

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
4 - 1
# readahead-collector - readahead-collector
2
#
3
# Starts readahead-collector
4
 
5
start on startup
6
 
7
stop on started prefdm or stopped rc RUNLEVEL=[234] or runlevel [016]
8
 
9
kill timeout 60
10
 
11
script
12
	# do not exit on failed commands
13
	set +e
14
 
15
. /etc/sysconfig/readahead
16
. /etc/init.d/functions
17
cmdline=$(cat /proc/cmdline)
18
 
19
check_autorelabel()
20
{
21
	if [ -f  /.autorelabel ] || strstr "$cmdline" autorelabel; then
22
		# Check SELinux status
23
		selinuxfs="$(fstab_decode_str `LC_ALL=C awk '/ selinuxfs / { print $2 }' /proc/mounts`)"
24
		SELINUX_STATE=
25
		if [ -n "$selinuxfs" ] && [ "`cat /proc/self/attr/current`" != "kernel" ]; then
26
		    if [ -r "$selinuxfs/enforce" ] ; then
27
			SELINUX_STATE=`cat "$selinuxfs/enforce"`
28
		    else
29
	                # assume enforcing if you can't read it
30
	                SELINUX_STATE=1
31
	            fi
32
		fi
33
 
34
		if [ -n "$SELINUX_STATE" ]; then
35
			return 0
36
		fi
37
	fi
38
	return 1
39
}
40
 
41
check_readonly()
42
{
43
	READONLY=
44
	if [ -f /etc/sysconfig/readonly-root ]; then
45
            . /etc/sysconfig/readonly-root
46
	fi
47
	strstr "$cmdline" readonlyroot && READONLY=yes
48
 
49
	[ "$READONLY" = "yes" ] && return 0
50
	return 1
51
}
52
 
53
 
54
	[ -f /.autofsck ] && exit 0
55
	[ -f /forcefsck ] && exit 0
56
 
57
	[ "$READAHEAD_COLLECT" != "yes" ] && exit 0
58
 
59
	if [ ! -f /.readahead_collect ]; then
60
		[ "$READAHEAD_COLLECT_ON_RPM" != "yes" ] && exit 0
61
                [ -f /var/lib/readahead/early.sorted ] && \
62
                        [ /var/lib/readahead/early.sorted -nt /var/lib/rpm/Packages ] && \
63
                        exit 0
64
	fi
65
 
66
	if [ -z "$READAHEAD_DELAY_SERVICES" ]; then
67
	    # do not delay services, so exit, if they will be started
68
	    for service in auditd ; do
69
		/sbin/chkconfig --level $runlevel $service >/dev/null 2>&1 && exit 0
70
	    done
71
	fi
72
 
73
	check_readonly && exit 0
74
	check_autorelabel && exit 0
75
	> /dev/shm/readahead-collector-started
76
	echo "<6>readahead-collector: starting" > /dev/kmsg
77
	exec /sbin/readahead-collector -f
78
end script
79
 
80
pre-stop script
81
	set +e
82
 
83
	# after prefdm is startup collect some more seconds
84
	. /etc/sysconfig/readahead
85
	sleep ${READAHEAD_EXTRA_COLLECT:-10}
86
	exit 0
87
end script
88
 
89
post-stop script
90
	# do not exit on failed commands
91
	set +e
92
 
93
	. /etc/sysconfig/readahead
94
	[ -f /dev/shm/readahead-collector-started ] || exit 0
95
	rm -f /dev/shm/readahead-collector-started
96
	rm -f /.readahead_collect
97
 
98
	# start delayed services
99
	runlevel=$(/sbin/runlevel| (read a b; echo $b))
100
	for service in "$READAHEAD_DELAY_SERVICES" ; do
101
		if [ -f /var/lock/subsys/delay-$runlevel-$service ]; then
102
				echo "<6>readahead-collector: starting delayed service $service" > /dev/kmsg
103
				/sbin/chkconfig --level $runlevel $service on
104
				/sbin/service $service start
105
				rm -f /var/lock/subsys/delay-$runlevel-$service
106
		fi
107
	done
108
	# process lists
109
	echo "<6>readahead-collector: sorting" > /dev/kmsg
110
	/etc/cron.daily/readahead.cron 2>/dev/null 1>&2
111
	echo "<6>readahead-collector: finished" > /dev/kmsg
112
	exit 0
113
end script