add K* scripts to be run at shutdown
[openwrt/staging/mkresin.git] / package / base-files / files / etc / rc.common
1 #!/bin/sh
2 # Copyright (C) 2006 OpenWrt.org
3
4 . $IPKG_INSTROOT/etc/functions.sh
5
6 START=50
7
8 start() {
9 return 0
10 }
11
12 stop() {
13 return 0
14 }
15
16 reload() {
17 return 1
18 }
19
20 restart() {
21 trap '' TERM
22 stop
23 start
24 }
25
26 boot() {
27 start
28 }
29
30 shutdown() {
31 return 0
32 }
33
34 disable() {
35 name="$(basename "${initscript}")"
36 rm -f "$IPKG_INSTROOT"/etc/rc.d/S??$name
37 }
38
39 enable() {
40 name="$(basename "${initscript}")"
41 disable
42 ln -s "/etc/init.d/$name" "$IPKG_INSTROOT/etc/rc.d/S${START}${name##S[0-9][0-9]}"
43 [ "$STOP" ] && ln -s "/etc/init.d/$name" "$IPKG_INSTROOT/etc/rc.d/K${START}${name##K[0-9][0-9]}"
44 }
45
46 enabled() {
47 name="$(basename "${initscript}")"
48 [ -x "$IPKG_INSTROOT/etc/rc.d/S${START}${name##S[0-9][0-9]}" ]
49 }
50
51 depends() {
52 return 0
53 }
54
55 help() {
56 cat <<EOF
57 Syntax: $initscript [command]
58
59 Available commands:
60 start Start the service
61 stop Stop the service
62 restart Restart the service
63 reload Reload configuration files (or restart if that fails)
64 enable Enable service autostart
65 disable Disable service autostart
66 $EXTRA_HELP
67 EOF
68 }
69
70 initscript="$1"
71 action="$2"
72
73 . "$initscript"
74
75 cmds=
76 for cmd in $EXTRA_COMMANDS; do
77 cmds="${cmds:+$cmds$N}$cmd) $cmd;;"
78 done
79 eval "case \"\$action\" in
80 start) start;;
81 stop) stop;;
82 reload) reload || restart;;
83 restart) restart;;
84 boot) boot;;
85 shutdown) shutdown;;
86 enable) enable;;
87 enabled) enabled;;
88 disable) disable;;
89 $cmds
90 *) help;;
91 esac"