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' | config owfs 'owfs' | ||||
option enabled 0 | option enabled 0 | ||||
option uid 0 | |||||
option gid 0 | |||||
option user root | |||||
option readonly 0 | option readonly 0 | ||||
option mountpoint '/mnt/owfs' | option mountpoint '/mnt/owfs' | ||||
option fuse_allow_other 0 | option fuse_allow_other 0 | ||||
option fuse_open_opt '' | option fuse_open_opt '' | ||||
option error_level 0 | 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 | #!/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' | config owftpd 'owftpd' | ||||
option enabled 0 | option enabled 0 | ||||
option uid 0 | |||||
option gid 0 | |||||
option user root | |||||
option readonly 0 | option readonly 0 | ||||
option port 21 | option port 21 | ||||
option error_level 0 | 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 | #!/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' | config owhttpd 'owhttpd' | ||||
option enabled 0 | option enabled 0 | ||||
option uid 65534 | |||||
option gid 65534 | |||||
option user root | |||||
option readonly 0 | option readonly 0 | ||||
option port 3001 | option port 3001 | ||||
option error_level 0 | 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 | #!/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' | config owserver 'owserver' | ||||
option enabled 0 | option enabled 0 | ||||
option uid 65534 | |||||
option gid 65534 | |||||
option user root | |||||
option readonly 0 | option readonly 0 | ||||
option port 4304 | option port 4304 | ||||
option error_level 0 | 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 | #!/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 | |||||
} | } |