Convert init.d scripts to use procd and take advantage of respawn feature. Signed-off-by: Marcin Jurkowski <marcin1j@gmail.com>lilik-openwrt-22.03
@ -1,11 +1,10 @@ | |||
config owfs 'owfs' | |||
option enabled 0 | |||
option uid 0 | |||
option gid 0 | |||
option user root | |||
option readonly 0 | |||
option mountpoint '/mnt/owfs' | |||
option fuse_allow_other 0 | |||
option fuse_open_opt '' | |||
option error_level 0 | |||
option options '' | |||
list devices '-s localhost:4304' | |||
list devices '-s' | |||
list devices 'localhost:4304' |
@ -1,75 +1,82 @@ | |||
#!/bin/sh /etc/rc.common | |||
# Copyright (C) 2009-2012 OpenWrt.org | |||
# Copyright (C) 2009-2015 OpenWrt.org | |||
START=99 | |||
START=95 | |||
USE_PROCD=1 | |||
SERVICE_WRITE_PID=1 | |||
SERVICE_DAEMONIZE=1 | |||
PROG=/usr/bin/owfs | |||
# Workaround insufficient /dev/fuse permissions and the lack of /etc/fuse.conf | |||
DEFAULT_SERVICE_UID=0 | |||
DEFAULT_SERVICE_GID=0 | |||
append_arg() { | |||
local cfg="$1" | |||
local var="$2" | |||
local opt="$3" | |||
local def="$4" | |||
local val | |||
append_device() { | |||
append devices "$1" | |||
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 | |||
start_owfs_daemon() { | |||
local program="$1" | |||
local config="$1" | |||
local args="--foreground --error_print=1 $2" | |||
local enabled | |||
config_get_bool enabled "$config" enabled 0 | |||
[ "${enabled}" -eq 0 ] && return 1 | |||
config_get_bool val "$cfg" "$var" "$def" | |||
[ "$val" = 1 ] && procd_append_param command "$opt" | |||
} | |||
local readonly | |||
config_get_bool readonly "$config" readonly 0 | |||
[ "${readonly}" -eq 1 ] && append args "--readonly" | |||
append_plain() { | |||
procd_append_param command "$1" | |||
} | |||
local error_level | |||
config_get error_level "$config" error_level | |||
[ -n "${error_level}" ] && append args "--error_level=${error_level}" | |||
append_param() { | |||
local cfg="$1" | |||
local var="$2" | |||
local opt="$3" | |||
local def="$4" | |||
local val | |||
local options | |||
config_get options "$config" options | |||
config_get val "$cfg" "$var" | |||
[ -n "$val" -o -n "$def" ] && procd_append_param "$opt" "${val:-$def}" | |||
} | |||
devices="" | |||
config_list_foreach "$config" devices append_device | |||
start_instance() { | |||
local cfg="$1" | |||
local enabled | |||
config_get SERVICE_UID "$config" uid "$DEFAULT_SERVICE_UID" | |||
config_get SERVICE_GID "$config" gid "$DEFAULT_SERVICE_GID" | |||
config_get_bool enabled "$cfg" 'enabled' '0' | |||
[ "$enabled" = 0 ] && return 1 | |||
service_start "/usr/bin/$program" $args $options $devices | |||
} | |||
procd_open_instance | |||
start_owfs() { | |||
local config="owfs" | |||
local args="" | |||
procd_set_param command "$PROG" --foreground --error_print=1 | |||
config_load "$config" | |||
# common parameters | |||
append_bool "$cfg" readonly "--readonly" | |||
append_arg "$cfg" error_level "--error_level" | |||
config_list_foreach "$cfg" options append_plain | |||
config_list_foreach "$cfg" devices append_plain | |||
append_param "$cfg" user user | |||
local mountpoint | |||
config_get mountpoint "$config" mountpoint /mnt/owfs | |||
append args "--mountpoint=${mountpoint}" | |||
# owfs-specific | |||
append_arg "$cfg" mountpoint "--mountpoint" /mnt/owfs | |||
append_bool "$cfg" fuse_allow_other "--allow_other" | |||
append_arg "$cfg" fuse_open_opt "--fuse_open_opt" | |||
local fuse_allow_other | |||
config_get_bool fuse_allow_other "$config" fuse_allow_other 0 | |||
[ "${fuse_allow_other}" -eq 1 ] && append args "--allow_other" | |||
# don't respawn fuse | |||
local fuse_open_opt | |||
config_get fuse_open_opt "$config" fuse_open_opt | |||
[ -n "${fuse_open_opt}" ] && append args "--fuse_open_opt=\"${fuse_open_opt}\"" | |||
procd_close_instance | |||
start_owfs_daemon "$config" "$args" | |||
} | |||
start() { | |||
start_owfs | |||
service_triggers() { | |||
procd_add_reload_trigger owfs | |||
} | |||
stop() { | |||
service_stop /usr/bin/owfs | |||
start_service() { | |||
config_load owfs | |||
config_foreach start_instance owfs | |||
} |
@ -1,9 +1,8 @@ | |||
config owftpd 'owftpd' | |||
option enabled 0 | |||
option uid 0 | |||
option gid 0 | |||
option user root | |||
option readonly 0 | |||
option port 21 | |||
option error_level 0 | |||
option options '' | |||
list devices '-s localhost:4304' | |||
list devices '-s' | |||
list devices 'localhost:4304' |
@ -1,72 +1,81 @@ | |||
#!/bin/sh /etc/rc.common | |||
# Copyright (C) 2009-2012 OpenWrt.org | |||
# Copyright (C) 2009-2015 OpenWrt.org | |||
START=99 | |||
START=95 | |||
USE_PROCD=1 | |||
SERVICE_WRITE_PID=1 | |||
SERVICE_DAEMONIZE=1 | |||
PROG=/usr/bin/owftpd | |||
# Needed for restricted TCP port 21 | |||
DEFAULT_SERVICE_UID=0 | |||
DEFAULT_SERVICE_GID=0 | |||
append_arg() { | |||
local cfg="$1" | |||
local var="$2" | |||
local opt="$3" | |||
local def="$4" | |||
local val | |||
append_device() { | |||
append devices "$1" | |||
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 | |||
start_owfs_daemon() { | |||
local program="$1" | |||
local config="$1" | |||
local args="--foreground --error_print=1 $2" | |||
config_get_bool val "$cfg" "$var" "$def" | |||
[ "$val" = 1 ] && procd_append_param command "$opt" | |||
} | |||
local enabled | |||
config_get_bool enabled "$config" enabled 0 | |||
[ "${enabled}" -eq 0 ] && return 1 | |||
append_plain() { | |||
procd_append_param command "$1" | |||
} | |||
local readonly | |||
config_get_bool readonly "$config" readonly 0 | |||
[ "${readonly}" -eq 1 ] && append args "--readonly" | |||
append_param() { | |||
local cfg="$1" | |||
local var="$2" | |||
local opt="$3" | |||
local def="$4" | |||
local val | |||
local error_level | |||
config_get error_level "$config" error_level | |||
[ -n "${error_level}" ] && append args "--error_level=${error_level}" | |||
config_get val "$cfg" "$var" | |||
[ -n "$val" -o -n "$def" ] && procd_append_param "$opt" "${val:-$def}" | |||
} | |||
local options | |||
config_get options "$config" options | |||
start_instance() { | |||
local cfg="$1" | |||
local enabled | |||
devices="" | |||
config_list_foreach "$config" devices append_device | |||
config_get_bool enabled "$cfg" 'enabled' '0' | |||
[ "$enabled" = 0 ] && return 1 | |||
config_get SERVICE_UID "$config" uid "$DEFAULT_SERVICE_UID" | |||
config_get SERVICE_GID "$config" gid "$DEFAULT_SERVICE_GID" | |||
procd_open_instance | |||
service_start "/usr/bin/$program" $args $options $devices | |||
} | |||
procd_set_param command "$PROG" --foreground --error_print=1 | |||
start_owftpd() { | |||
local config="owftpd" | |||
local args="" | |||
# common parameters | |||
append_bool "$cfg" readonly "--readonly" | |||
append_arg "$cfg" error_level "--error_level" | |||
config_list_foreach "$cfg" options append_plain | |||
config_list_foreach "$cfg" devices append_plain | |||
append_param "$cfg" user user | |||
config_load "$config" | |||
# owftpd-specific | |||
append_arg "$cfg" port "--port" | |||
append_arg "$cfg" max_connections "--max_connections" | |||
local port | |||
config_get port "$config" port | |||
[ -n "${port}" ] && append args "--port=${port}" | |||
procd_set_param respawn | |||
local max_connections | |||
config_get max_connections "$config" max_connections | |||
[ -n "${max_connections}" ] && append args "--max_connections=${max_connections}" | |||
procd_close_instance | |||
start_owfs_daemon "$config" "$args" | |||
} | |||
start() { | |||
start_owftpd | |||
service_triggers() { | |||
procd_add_reload_trigger owftpd | |||
} | |||
stop() { | |||
service_stop /usr/bin/owftpd | |||
start_service() { | |||
config_load owftpd | |||
config_foreach start_instance owftpd | |||
} |
@ -1,9 +1,8 @@ | |||
config owhttpd 'owhttpd' | |||
option enabled 0 | |||
option uid 65534 | |||
option gid 65534 | |||
option user root | |||
option readonly 0 | |||
option port 3001 | |||
option error_level 0 | |||
option options '' | |||
list devices '-s localhost:4304' | |||
list devices '-s' | |||
list devices 'localhost:4304' |
@ -1,71 +1,81 @@ | |||
#!/bin/sh /etc/rc.common | |||
# Copyright (C) 2009-2012 OpenWrt.org | |||
# Copyright (C) 2009-2015 OpenWrt.org | |||
START=99 | |||
START=95 | |||
USE_PROCD=1 | |||
SERVICE_WRITE_PID=1 | |||
SERVICE_DAEMONIZE=1 | |||
PROG=/usr/bin/owhttpd | |||
DEFAULT_SERVICE_UID=65534 | |||
DEFAULT_SERVICE_GID=65534 | |||
append_arg() { | |||
local cfg="$1" | |||
local var="$2" | |||
local opt="$3" | |||
local def="$4" | |||
local val | |||
append_device() { | |||
append devices "$1" | |||
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 | |||
start_owfs_daemon() { | |||
local program="$1" | |||
local config="$1" | |||
local args="--foreground --error_print=1 $2" | |||
config_get_bool val "$cfg" "$var" "$def" | |||
[ "$val" = 1 ] && procd_append_param command "$opt" | |||
} | |||
local enabled | |||
config_get_bool enabled "$config" enabled 0 | |||
[ "${enabled}" -eq 0 ] && return 1 | |||
append_plain() { | |||
procd_append_param command "$1" | |||
} | |||
local readonly | |||
config_get_bool readonly "$config" readonly 0 | |||
[ "${readonly}" -eq 1 ] && append args "--readonly" | |||
append_param() { | |||
local cfg="$1" | |||
local var="$2" | |||
local opt="$3" | |||
local def="$4" | |||
local val | |||
local error_level | |||
config_get error_level "$config" error_level | |||
[ -n "${error_level}" ] && append args "--error_level=${error_level}" | |||
config_get val "$cfg" "$var" | |||
[ -n "$val" -o -n "$def" ] && procd_append_param "$opt" "${val:-$def}" | |||
} | |||
local options | |||
config_get options "$config" options | |||
start_instance() { | |||
local cfg="$1" | |||
local enabled | |||
devices="" | |||
config_list_foreach "$config" devices append_device | |||
config_get_bool enabled "$cfg" 'enabled' '0' | |||
[ "$enabled" = 0 ] && return 1 | |||
config_get SERVICE_UID "$config" uid "$DEFAULT_SERVICE_UID" | |||
config_get SERVICE_GID "$config" gid "$DEFAULT_SERVICE_GID" | |||
procd_open_instance | |||
service_start "/usr/bin/$program" $args $options $devices | |||
} | |||
procd_set_param command "$PROG" --foreground --error_print=1 | |||
start_owhttpd() { | |||
local config="owhttpd" | |||
local args="" | |||
# common parameters | |||
append_bool "$cfg" readonly "--readonly" | |||
append_arg "$cfg" error_level "--error_level" | |||
config_list_foreach "$cfg" options append_plain | |||
config_list_foreach "$cfg" devices append_plain | |||
append_param "$cfg" user user | |||
config_load "$config" | |||
# owhttpd-specific | |||
append_arg "$cfg" port "--port" | |||
append_arg "$cfg" max_connections "--max_connections" | |||
local port | |||
config_get port "$config" port | |||
[ -n "${port}" ] && append args "--port=${port}" | |||
procd_set_param respawn | |||
local max_connections | |||
config_get max_connections "$config" max_connections | |||
[ -n "${max_connections}" ] && append args "--max_connections=${max_connections}" | |||
procd_close_instance | |||
start_owfs_daemon "$config" "$args" | |||
} | |||
start() { | |||
start_owhttpd | |||
service_triggers() { | |||
procd_add_reload_trigger owhttpd | |||
} | |||
stop() { | |||
service_stop /usr/bin/owhttpd | |||
start_service() { | |||
config_load owhttpd | |||
config_foreach start_instance owhttpd | |||
} |
@ -1,9 +1,8 @@ | |||
config owserver 'owserver' | |||
option enabled 0 | |||
option uid 65534 | |||
option gid 65534 | |||
option user root | |||
option readonly 0 | |||
option port 4304 | |||
option error_level 0 | |||
option options '' | |||
list devices '-d /dev/ttyUSB0' | |||
list devices '-d' | |||
list devices '/dev/ttyUSB0' |
@ -1,70 +1,81 @@ | |||
#!/bin/sh /etc/rc.common | |||
# Copyright (C) 2009-2012 OpenWrt.org | |||
# Copyright (C) 2009-2015 OpenWrt.org | |||
START=98 | |||
START=90 | |||
USE_PROCD=1 | |||
SERVICE_WRITE_PID=1 | |||
SERVICE_DAEMONIZE=1 | |||
PROG=/usr/bin/owserver | |||
DEFAULT_SERVICE_UID=65534 | |||
DEFAULT_SERVICE_GID=65534 | |||
append_arg() { | |||
local cfg="$1" | |||
local var="$2" | |||
local opt="$3" | |||
local def="$4" | |||
local val | |||
append_device() { | |||
append devices "$1" | |||
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 | |||
start_owfs_daemon() { | |||
local program="$1" | |||
local config="$1" | |||
local args="--foreground --error_print=1 $2" | |||
config_get_bool val "$cfg" "$var" "$def" | |||
[ "$val" = 1 ] && procd_append_param command "$opt" | |||
} | |||
local enabled | |||
config_get_bool enabled "$config" enabled 0 | |||
[ "${enabled}" -eq 0 ] && return 1 | |||
append_plain() { | |||
procd_append_param command "$1" | |||
} | |||
local readonly | |||
config_get_bool readonly "$config" readonly 0 | |||
[ "${readonly}" -eq 1 ] && append args "--readonly" | |||
append_param() { | |||
local cfg="$1" | |||
local var="$2" | |||
local opt="$3" | |||
local def="$4" | |||
local val | |||
local error_level | |||
config_get error_level "$config" error_level | |||
[ -n "${error_level}" ] && append args "--error_level=${error_level}" | |||
config_get val "$cfg" "$var" | |||
[ -n "$val" -o -n "$def" ] && procd_append_param "$opt" "${val:-$def}" | |||
} | |||
local options | |||
config_get options "$config" options | |||
start_instance() { | |||
local cfg="$1" | |||
local enabled | |||
devices="" | |||
config_list_foreach "$config" devices append_device | |||
config_get_bool enabled "$cfg" 'enabled' '0' | |||
[ "$enabled" = 0 ] && return 1 | |||
config_get SERVICE_UID "$config" uid "$DEFAULT_SERVICE_UID" | |||
config_get SERVICE_GID "$config" gid "$DEFAULT_SERVICE_GID" | |||
procd_open_instance | |||
service_start "/usr/bin/$program" $args $options $devices | |||
} | |||
procd_set_param command "$PROG" --foreground --error_print=1 | |||
start_owserver() { | |||
local config="owserver" | |||
local args="" | |||
# common parameters | |||
append_bool "$cfg" readonly "--readonly" | |||
append_arg "$cfg" error_level "--error_level" | |||
config_list_foreach "$cfg" options append_plain | |||
config_list_foreach "$cfg" devices append_plain | |||
append_param "$cfg" user user | |||
config_load "$config" | |||
# owserver-specific | |||
append_arg "$cfg" port "--port" | |||
append_arg "$cfg" max_connections "--max_connections" | |||
local port | |||
config_get port "$config" port | |||
[ -n "${port}" ] && append args "--port=${port}" | |||
procd_set_param respawn | |||
local max_connections | |||
config_get max_connections "$config" max_connections | |||
[ -n "${max_connections}" ] && append args "--max_connections=${max_connections}" | |||
procd_close_instance | |||
start_owfs_daemon "$config" "$args" | |||
} | |||
start() { | |||
start_owserver | |||
service_triggers() { | |||
procd_add_reload_trigger owserver | |||
} | |||
stop() { | |||
service_stop /usr/bin/owserver | |||
start_service() { | |||
config_load owserver | |||
config_foreach start_instance owserver | |||
} |