X-Git-Url: http://git.openwrt.org/?p=openwrt%2Fopenwrt.git;a=blobdiff_plain;f=package%2Fbase-files%2Ffiles%2Fetc%2Frc.common;h=695fc166fbcd1af6432016511f63d723174a0504;hp=fa2df6cd25d7b778b08b4400a204d473fd0098f0;hb=d288a7903dde9fadfeea3145647f950dfeadcfea;hpb=bfe966574f85ef391522507ee87689bbfe1e7277 diff --git a/package/base-files/files/etc/rc.common b/package/base-files/files/etc/rc.common index fa2df6cd25..695fc166fb 100755 --- a/package/base-files/files/etc/rc.common +++ b/package/base-files/files/etc/rc.common @@ -75,10 +75,63 @@ $EXTRA_HELP EOF } +# for procd +start_service() { + return 0 +} + +stop_service() { + return 0 +} + +service_triggers() { + return 0 +} + +service_running() { + return 0 +} + ${INIT_TRACE:+set -x} . "$initscript" +[ -n "$USE_PROCD" ] && { + EXTRA_COMMANDS="${EXTRA_COMMANDS} running" + + . $IPKG_INSTROOT/lib/functions/procd.sh + basescript=$(readlink "$initscript") + rc_procd() { + procd_open_service "$(basename ${basescript:-$initscript})" "$initscript" + "$@" + procd_close_service + } + + start() { + rc_procd start_service "$@" + if eval "type service_started" 2>/dev/null >/dev/null; then + service_started + fi + } + + stop() { + stop_service "$@" + procd_kill "$(basename ${basescript:-$initscript})" "$1" + } + + reload() { + if eval "type reload_service" 2>/dev/null >/dev/null; then + 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" = "reload" ] && action='eval reload "$@" || restart "$@" && :'