]> TLD Linux GIT Repositories - rc-scripts.git/blob - service
- disable lock checks (happens on LUKS2 and fails during system boot)
[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                         # S for SysVinit
30                         TYPE='S'
31                         if ! grep -qs "\Wstatus)" "$SERVICE"; then
32                                 printf " %s %-60s %s\n" "$TYPE:[?]" "$SERVICE:" "unknown"
33                                 continue
34                         else
35                                 out=$(env -i LANG="$LANG" PATH="$PATH" TERM="$TERM" "$SERVICEDIR/$SERVICE" status 2>&1)
36                                 if [ "$?" = "0" -a -n "$out" ]; then
37                                         printf " %s %-60s %s\n" "$TYPE:[+]" "$SERVICE:" "running"
38                                         continue
39                                 else
40                                         printf " %s %-60s %s %s\n" "$TYPE:[-]" "$SERVICE:" "NOT running"
41                                         continue
42                                 fi
43                         fi
44                 fi
45                 ;;
46                 esac
47         done
48 }
49
50 VERSION="$(basename $0) ver. 1.0-tld"
51 USAGE="Usage: $(basename $0) < option > | --status-all | \
52 [ service_name [ command | --full-restart ] ]"
53
54 SERVICE=
55
56 if [ -d /etc/rc.d/init.d ]; then
57         SERVICEDIR="/etc/rc.d/init.d"
58 else
59         SERVICEDIR="/etc/init.d"
60 fi
61
62 if [ $# -eq 0 ]; then
63         echo "${USAGE}" >&2
64         exit 1
65 fi
66
67 cd /
68 while [ $# -gt 0 ]; do
69         case "${1}" in
70         --help | -h | --h* )
71                 echo "${USAGE}" >&2
72                 exit 0
73                 ;;
74         --version | -V )
75                 echo "${VERSION}" >&2
76                 exit 0
77                 ;;
78         --ignore-dependencies)
79                 export SYSTEMCTL_IGNORE_DEPENDENCIES=1
80                 shift
81                 ;;
82         --skip-redirect)
83                 export SYSTEMCTL_SKIP_REDIRECT=1
84                 shift
85                 ;;
86           *)
87                 if [ -z "${SERVICE}" -a $# -eq 1 -a "${1}" = "--status-all" ]; then
88                         status_all
89                         exit 0
90                 elif [ $# -eq 2 -a "${2}" = "--full-restart" ]; then
91                         SERVICE="${1}"
92                         if [ -x "${SERVICEDIR}/${SERVICE}" ]; then
93                                 env -i LANG=$LANG PATH=$PATH TERM=$TERM "${SERVICEDIR}/${SERVICE}" stop
94                                 env -i LANG=$LANG PATH=$PATH TERM=$TERM "${SERVICEDIR}/${SERVICE}" start
95                                 exit $?
96                         fi
97                 elif [ -z "${SERVICE}" ]; then
98                         SERVICE="${1}"
99                 elif [ -z "${ACTION}" ]; then
100                         ACTION="${1}"
101                 else
102                         OPTIONS="${OPTIONS} ${1}"
103                 fi
104                 shift
105                 ;;
106         esac
107 done
108
109 if [ -x "${SERVICEDIR}/${SERVICE}" ]; then
110         exec env -i LANG=$LANG PATH=$PATH TERM=$TERM "${SERVICEDIR}/${SERVICE}" ${ACTION} ${OPTIONS}
111 else
112         echo "${SERVICE}: unrecognized service" >&2
113         exit 1
114 fi