Merge pull request #390 from aparcar/alfred_procd

alfred: use procd fix #388
This commit is contained in:
Moritz Warning 2018-07-20 14:22:52 +02:00 committed by GitHub
commit 4c7b4a349b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 32 additions and 41 deletions

View File

@ -1,48 +1,40 @@
#!/bin/sh /etc/rc.common
#
# Copyright (C) 2013 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
START=99
STOP=99
USE_PROCD=1
alfred_args=""
vis_args=""
facters_dir="/etc/alfred"
pid_file_alfred="/var/run/alfred.pid"
pid_file_vis="/var/run/batadv-vis.pid"
enable=0
vis_enable=0
SERVICE_DAEMONIZE=1
SERVICE_WRITE_PID=1
wait_for_dir()
{
wait_for_dir() {
local ifce="$1" dir="$2"
if ! [ -d "$dir" ] ; then
timeout=30
echo "${initscript}: waiting $timeout secs for $ifce interface..."
echo "waiting $timeout secs for $ifce interface..."
for i in $(seq $timeout); do
sleep 1
[ -d "$dir" ] && break
if [ $i == $timeout ] ; then
echo "${initscript}: $ifce not detected, alfred not starting."
if [ $i = $timeout ] ; then
echo "$ifce not detected, alfred not starting."
exit 1
fi
done
fi
}
wait_for_ll_address()
{
wait_for_ll_address() {
local iface="$1"
local timeout=30
echo "${initscript}: waiting $timeout secs for $iface address..."
echo "waiting $timeout secs for $iface address..."
for i in $(seq $timeout); do
# We look for
# - the link-local address (starts with fe80)
@ -58,12 +50,11 @@ wait_for_ll_address()
sleep 1
done
echo "${initscript}: $iface address not detected, alfred not starting."
echo "$iface address not detected, alfred not starting."
exit 1
}
alfred_start()
{
alfred_start() {
local args=""
local section="$1"
local disabled interface mode
@ -103,41 +94,41 @@ alfred_start()
return 0
}
start()
{
start_service() {
config_load "alfred"
config_foreach alfred_start alfred
if [ "$enable" = "0" ]; then
exit 0
fi
[ "$enable" = "0" ] && { exit 0 }
echo "${initscript}: starting alfred"
SERVICE_PID_FILE="$pid_file_alfred"
service_start /usr/sbin/alfred ${alfred_args}
procd_open_instance "alfred"
procd_set_param command /usr/sbin/alfred
procd_append_param command ${alfred_args}
procd_close_instance
if [ "$vis_enable" = "1" ]; then
echo "${initscript}: starting batadv-vis"
SERVICE_PID_FILE="$pid_file_vis"
service_start /usr/sbin/batadv-vis ${vis_args}
fi
[ "$vis_enable" = "1" ] && {
procd_open_instance "batadv-vis"
procd_set_param command /usr/sbin/batadv-vis
procd_append_param command ${vis_args}
procd_close_instance
}
if [ "$run_facters" = "1" ]; then
[ "$run_facters" = "1" ] && {
( for file in $facters_dir/* ; do [ -x $file ] && $file ; done )
if ! ( grep -q "for file in $facters_dir/\* ; do " /etc/crontabs/root 2>/dev/null ) ; then
echo "*/5 * * * * ( for file in $facters_dir/* ; do [ -x \$file ] && \$file ; done )" >> /etc/crontabs/root
/etc/init.d/cron enable
/etc/init.d/cron restart
fi
fi
}
}
stop()
{
SERVICE_PID_FILE="$pid_file_alfred"
service_stop /usr/sbin/alfred
SERVICE_PID_FILE="$pid_file_vis"
[ -x /usr/sbin/batadv-vis ] && service_stop /usr/sbin/batadv-vis
sed "\|for file in $facters_dir/\* ; do |d" -i /etc/crontabs/root
/etc/init.d/cron restart
service_triggers() {
procd_add_reload_trigger "alfred"
}
stop_service() {
[ -e /etc/crontabs/root ] && {
sed "\|for file in $facters_dir/\* ; do |d" -i /etc/crontabs/root
/etc/init.d/cron restart
}
}