123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155 |
- #!/bin/sh
- # Copyright (C) 2006-2012 OpenWrt.org
- . $IPKG_INSTROOT/lib/functions.sh
- . $IPKG_INSTROOT/lib/functions/service.sh
- initscript=$1
- action=${2:-help}
- shift 2
- start() {
- return 0
- }
- stop() {
- return 0
- }
- reload() {
- restart
- }
- restart() {
- trap '' TERM
- stop "$@"
- trap - TERM
- start "$@"
- }
- boot() {
- start "$@"
- }
- shutdown() {
- stop
- }
- disable() {
- name="$(basename "${initscript}")"
- rm -f "$IPKG_INSTROOT"/etc/rc.d/S??$name
- rm -f "$IPKG_INSTROOT"/etc/rc.d/K??$name
- }
- enable() {
- err=1
- name="$(basename "${initscript}")"
- [ "$START" ] && \
- ln -sf "../init.d/$name" "$IPKG_INSTROOT/etc/rc.d/S${START}${name##S[0-9][0-9]}" && \
- err=0
- [ "$STOP" ] && \
- ln -sf "../init.d/$name" "$IPKG_INSTROOT/etc/rc.d/K${STOP}${name##K[0-9][0-9]}" && \
- err=0
- return $err
- }
- enabled() {
- name="$(basename "${initscript}")"
- [ -x "$IPKG_INSTROOT/etc/rc.d/S${START}${name##S[0-9][0-9]}" ]
- }
- depends() {
- return 0
- }
- help() {
- cat <<EOF
- Syntax: $initscript [command]
- Available commands:
- start Start the service
- stop Stop the service
- restart Restart the service
- reload Reload configuration files (or restart if service does not implement reload)
- enable Enable service autostart
- disable Disable service autostart
- $EXTRA_HELP
- EOF
- }
- # for procd
- start_service() {
- return 0
- }
- stop_service() {
- return 0
- }
- service_triggers() {
- return 0
- }
- service_data() {
- return 0
- }
- service_running() {
- return 0
- }
- ${INIT_TRACE:+set -x}
- . "$initscript"
- [ -n "$USE_PROCD" ] && {
- EXTRA_COMMANDS="${EXTRA_COMMANDS} running trace"
- . $IPKG_INSTROOT/lib/functions/procd.sh
- basescript=$(readlink "$initscript")
- rc_procd() {
- local method="set"
- [ -n "$2" ] && method="add"
- procd_open_service "$(basename ${basescript:-$initscript})" "$initscript"
- "$@"
- procd_close_service "$method"
- }
- start() {
- rc_procd start_service "$@"
- if eval "type service_started" 2>/dev/null >/dev/null; then
- service_started
- fi
- }
- trace() {
- TRACE_SYSCALLS=1
- start "$@"
- }
- stop() {
- procd_lock
- stop_service "$@"
- procd_kill "$(basename ${basescript:-$initscript})" "$1"
- if eval "type service_stopped" 2>/dev/null >/dev/null; then
- service_stopped
- fi
- }
- reload() {
- if eval "type reload_service" 2>/dev/null >/dev/null; then
- procd_lock
- reload_service "$@"
- else
- start
- fi
- }
- running() {
- service_running "$@"
- }
- }
- ALL_COMMANDS="start stop reload restart boot shutdown enable disable enabled depends ${EXTRA_COMMANDS}"
- list_contains ALL_COMMANDS "$action" || action=help
- $action "$@"
|