add K* scripts to be run at shutdown
[openwrt.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"