123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- #!/bin/sh /etc/rc.common
- # Copyright (C) 2015 OpenWrt.org
- START=90
- STOP=10
- USE_PROCD=1
- append_arg() {
- local cfg="$1"
- local var="$2"
- local opt="$3"
- local def="$4"
- local val
- config_get val "$cfg" "$var"
- [ -n "$val" -o -n "$def" ] && procd_append_param command $opt "${val:-$def}"
- }
- append_bool() {
- local cfg="$1"
- local var="$2"
- local opt="$3"
- local def="$4"
- local val
- config_get_bool val "$cfg" "$var" "$def"
- [ "$val" = 1 ] && procd_append_param command "$opt"
- }
- start_instance() {
- local cfg="$1"
- local enabled
- config_get_bool enabled "$cfg" 'enabled' '0'
- [ "$enabled" = 0 ] && return 1
- procd_open_instance
- procd_set_param command /usr/sbin/nbd-client
- append_arg "$cfg" server
- append_arg "$cfg" port
- # device path
- procd_append_param command "/dev/$cfg"
- procd_append_param command -nofork
- append_bool "$cfg" sdp "-sdp"
- append_bool "$cfg" swap "-swap"
- append_bool "$cfg" persist "-persist"
- append_arg "$cfg" blocksize "-block-size"
- append_arg "$cfg" timeout "-timeout"
- append_arg "$cfg" exportname "-name"
- procd_close_instance
- }
- service_triggers() {
- procd_add_reload_trigger "nbd-client"
- }
- start_service() {
- config_load nbd-client
- config_foreach start_instance nbd-client
- }
- stop_service() {
- for dev in /dev/nbd*; do
- nbd-client -d $dev 1>/dev/null 2>&1
- done
- }
|