#!/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" } 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 "$@"