]> git.pld-linux.org Git - projects/rc-scripts.git/blob - service
point out the parameters use fact
[projects/rc-scripts.git] / service
1 #!/bin/sh
2
3 # Set up a default search path.
4 PATH="/sbin:/usr/sbin:/bin:/usr/bin:/usr/X11R6/bin"
5 export PATH
6
7 is_ignored_file() {
8         case "$1" in
9         skeleton | README | *.dpkg-dist | *.dpkg-old | rc | rcS | single | reboot | bootclean.sh)
10                 return 0
11                 ;;
12         *rpmorig | *rpmnew | *rpmsave | *~ | *.orig)
13                 return 0
14                 ;;
15         esac
16         return 1
17 }
18
19 status_all() {
20         local SERVICE TYPE
21         cd ${SERVICEDIR}
22         for SERVICE in *; do
23                 case "${SERVICE}" in
24                 functions | halt | killall | single| linuxconf| kudzu)
25                         ;;
26                 *)
27                 if ! is_ignored_file "${SERVICE}" \
28                                 && [ -x "${SERVICEDIR}/${SERVICE}" ]; then
29                         if [ -f /etc/init/${SERVICE}.conf ]; then
30                                 # U for upstart
31                                 TYPE='U'
32                         else
33                                 # S for SysVinit
34                                 TYPE='S'
35                         fi
36                         if ! grep -qs "\Wstatus)" "$SERVICE"; then
37                                 #printf " %s %-60s %s\n" "[?]" "$SERVICE:" "unknown" 1>&2
38                                 echo " [ ? ]{$TYPE} $SERVICE"
39                                 continue
40                         else
41                                 out=$(env -i USE_UPSTART=$USE_UPSTART LANG="$LANG" PATH="$PATH" TERM="$TERM" "$SERVICEDIR/$SERVICE" status 2>&1)
42                                 if [ "$?" = "0" -a -n "$out" ]; then
43                                         #printf " %s %-60s %s\n" "[+]" "$SERVICE:" "running"
44                                         echo " [ + ]{$TYPE} $SERVICE"
45                                         continue
46                                 else
47                                         #printf " %s %-60s %s\n" "[-]" "$SERVICE:" "NOT running"
48                                         echo " [ - ]{$TYPE} $SERVICE"
49                                         continue
50                                 fi
51                         fi
52                         #env -i LANG="$LANG" PATH="$PATH" TERM="$TERM" "$SERVICEDIR/$SERVICE" status
53                 fi
54                 ;;
55                 esac
56         done
57 }
58
59 VERSION="$(basename $0) ver. 0.91-pld"
60 USAGE="Usage: $(basename $0) < option > | --status-all | \
61 [ service_name [ command | --full-restart ] ]"
62
63 SERVICE=
64 USE_UPSTART=
65
66 if [ -d /etc/rc.d/init.d ]; then
67         SERVICEDIR="/etc/rc.d/init.d"
68 else
69         SERVICEDIR="/etc/init.d"
70 fi
71
72 if [ $# -eq 0 ]; then
73         echo "${USAGE}" >&2
74         exit 1
75 fi
76
77 cd /
78 while [ $# -gt 0 ]; do
79         case "${1}" in
80         --help | -h | --h* )
81                 echo "${USAGE}" >&2
82                 exit 0
83                 ;;
84         --version | -V )
85                 echo "${VERSION}" >&2
86                 exit 0
87                 ;;
88         --upstart)
89                 USE_UPSTART=yes
90                 shift
91                 ;;
92         --no-upstart)
93                 USE_UPSTART=no
94                 shift
95                 ;;
96           *)
97                 if [ -z "${SERVICE}" -a $# -eq 1 -a "${1}" = "--status-all" ]; then
98                         status_all
99                         exit 0
100                 elif [ $# -eq 2 -a "${2}" = "--full-restart" ]; then
101                         SERVICE="${1}"
102                         if [ -x "${SERVICEDIR}/${SERVICE}" ]; then
103                                 env -i USE_UPSTART=$USE_UPSTART LANG=$LANG PATH=$PATH TERM=$TERM "${SERVICEDIR}/${SERVICE}" stop
104                                 env -i USE_UPSTART=$USE_UPSTART LANG=$LANG PATH=$PATH TERM=$TERM "${SERVICEDIR}/${SERVICE}" start
105                                 exit $?
106                         fi
107                 elif [ -z "${SERVICE}" ]; then
108                         SERVICE="${1}"
109                 elif [ -z "${ACTION}" ]; then
110                         ACTION="${1}"
111                 else
112                         OPTIONS="${OPTIONS} ${1}"
113                 fi
114                 shift
115                 ;;
116         esac
117 done
118
119 if [ -x "${SERVICEDIR}/${SERVICE}" ]; then
120         exec env -i USE_UPSTART=$USE_UPSTART LANG=$LANG PATH=$PATH TERM=$TERM "${SERVICEDIR}/${SERVICE}" ${ACTION} ${OPTIONS}
121 else
122         echo "${SERVICE}: unrecognized service" >&2
123         exit 1
124 fi
This page took 0.032223 seconds and 3 git commands to generate.