]> git.saurik.com Git - apple/launchd.git/blob - launchd/src/rc.common
launchd-328.tar.gz
[apple/launchd.git] / launchd / src / rc.common
1 ##
2 # Common setup for startup scripts.
3 ##
4 # Copyright 1998-2002 Apple Computer, Inc.
5 ##
6
7 #######################
8 # Configure the shell #
9 #######################
10
11 ##
12 # Be strict
13 ##
14 #set -e
15 set -u
16
17 ##
18 # Set command search path
19 ##
20 PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/libexec:/System/Library/CoreServices; export PATH
21
22 ##
23 # Set the terminal mode
24 ##
25 #if [ -x /usr/bin/tset ] && [ -f /usr/share/misc/termcap ]; then
26 # TERM=$(tset - -Q); export TERM
27 #fi
28
29 ####################
30 # Useful functions #
31 ####################
32
33 ##
34 # Determine if the network is up by looking for any non-loopback
35 # internet network interfaces.
36 ##
37 CheckForNetwork()
38 {
39 local test
40
41 if [ -z "${NETWORKUP:=}" ]; then
42 test=$(ifconfig -a inet 2>/dev/null | sed -n -e '/127.0.0.1/d' -e '/0.0.0.0/d' -e '/inet/p' | wc -l)
43 if [ "${test}" -gt 0 ]; then
44 NETWORKUP="-YES-"
45 else
46 NETWORKUP="-NO-"
47 fi
48 fi
49 }
50
51 alias ConsoleMessage=echo
52
53 ##
54 # Process management
55 ##
56 GetPID ()
57 {
58 local program="$1"
59 local pidfile="${PIDFILE:=/var/run/${program}.pid}"
60 local pid=""
61
62 if [ -f "${pidfile}" ]; then
63 pid=$(head -1 "${pidfile}")
64 if ! kill -0 "${pid}" 2> /dev/null; then
65 echo "Bad pid file $pidfile; deleting."
66 pid=""
67 rm -f "${pidfile}"
68 fi
69 fi
70
71 if [ -n "${pid}" ]; then
72 echo "${pid}"
73 return 0
74 else
75 return 1
76 fi
77 }
78
79 ##
80 # Generic action handler
81 ##
82 RunService ()
83 {
84 case $1 in
85 start ) StartService ;;
86 stop ) StopService ;;
87 restart) RestartService ;;
88 * ) echo "$0: unknown argument: $1";;
89 esac
90 }
91
92 ##########################
93 # Get host configuration #
94 ##########################
95 . /etc/hostconfig