mbedtls: update to 2.16.9
[librecmc/librecmc.git] / package / base-files / files / etc / rc.common
1 #!/bin/sh
2 # Copyright (C) 2006-2012 OpenWrt.org
3
4 . $IPKG_INSTROOT/lib/functions.sh
5 . $IPKG_INSTROOT/lib/functions/service.sh
6
7 initscript=$1
8 action=${2:-help}
9 shift 2
10
11 start() {
12         return 0
13 }
14
15 stop() {
16         return 0
17 }
18
19 reload() {
20         restart
21 }
22
23 restart() {
24         trap '' TERM
25         stop "$@"
26         trap - TERM
27         start "$@"
28 }
29
30 boot() {
31         start "$@"
32 }
33
34 shutdown() {
35         stop
36 }
37
38 disable() {
39         name="$(basename "${initscript}")"
40         rm -f "$IPKG_INSTROOT"/etc/rc.d/S??$name
41         rm -f "$IPKG_INSTROOT"/etc/rc.d/K??$name
42 }
43
44 enable() {
45         err=1
46         name="$(basename "${initscript}")"
47         [ "$START" ] && \
48                 ln -sf "../init.d/$name" "$IPKG_INSTROOT/etc/rc.d/S${START}${name##S[0-9][0-9]}" && \
49                 err=0
50         [ "$STOP" ] && \
51                 ln -sf "../init.d/$name" "$IPKG_INSTROOT/etc/rc.d/K${STOP}${name##K[0-9][0-9]}" && \
52                 err=0
53         return $err
54 }
55
56 enabled() {
57         name="$(basename "${initscript}")"
58         [ -x "$IPKG_INSTROOT/etc/rc.d/S${START}${name##S[0-9][0-9]}" ]
59 }
60
61 depends() {
62         return 0
63 }
64
65 help() {
66         cat <<EOF
67 Syntax: $initscript [command]
68
69 Available commands:
70         start   Start the service
71         stop    Stop the service
72         restart Restart the service
73         reload  Reload configuration files (or restart if service does not implement reload)
74         enable  Enable service autostart
75         disable Disable service autostart
76 $EXTRA_HELP
77 EOF
78 }
79
80 # for procd
81 start_service() {
82         return 0
83 }
84
85 stop_service() {
86         return 0
87 }
88
89 service_triggers() {
90         return 0
91 }
92
93 service_data() {
94         return 0
95 }
96
97 service_running() {
98         return 0
99 }
100
101 ${INIT_TRACE:+set -x}
102
103 . "$initscript"
104
105 [ -n "$USE_PROCD" ] && {
106         EXTRA_COMMANDS="${EXTRA_COMMANDS} running trace"
107
108         . $IPKG_INSTROOT/lib/functions/procd.sh
109         basescript=$(readlink "$initscript")
110         rc_procd() {
111                 local method="set"
112                 [ -n "$2" ] && method="add"
113                 procd_open_service "$(basename ${basescript:-$initscript})" "$initscript"
114                 "$@"
115                 procd_close_service "$method"
116         }
117
118         start() {
119                 rc_procd start_service "$@"
120                 if eval "type service_started" 2>/dev/null >/dev/null; then
121                         service_started
122                 fi
123         }
124
125         trace() {
126                 TRACE_SYSCALLS=1
127                 start "$@"
128         }
129
130         stop() {
131                 procd_lock
132                 stop_service "$@"
133                 procd_kill "$(basename ${basescript:-$initscript})" "$1"
134                 if eval "type service_stopped" 2>/dev/null >/dev/null; then
135                         service_stopped
136                 fi
137         }
138
139         reload() {
140                 if eval "type reload_service" 2>/dev/null >/dev/null; then
141                         procd_lock
142                         reload_service "$@"
143                 else
144                         start
145                 fi
146         }
147
148         running() {
149                 service_running "$@"
150         }
151 }
152
153 ALL_COMMANDS="start stop reload restart boot shutdown enable disable enabled depends ${EXTRA_COMMANDS}"
154 list_contains ALL_COMMANDS "$action" || action=help
155 $action "$@"