rather than using flock for procd enabled services we add locking to the rc.common code.
Signed-off-by: John Crispin <j...@phrozen.org> --- package/base-files/files/etc/rc.common | 6 ++++++ package/system/procd/files/procd.sh | 15 --------------- 2 files changed, 6 insertions(+), 15 deletions(-) diff --git a/package/base-files/files/etc/rc.common b/package/base-files/files/etc/rc.common index 3e237170b4..180ee83acd 100755 --- a/package/base-files/files/etc/rc.common +++ b/package/base-files/files/etc/rc.common @@ -148,4 +148,10 @@ ${INIT_TRACE:+set -x} ALL_COMMANDS="start stop reload restart boot shutdown enable disable enabled depends ${EXTRA_COMMANDS}" list_contains ALL_COMMANDS "$action" || action=help + +local basescript=$(readlink "$initscript") +local service_name="$(basename ${basescript:-$initscript})" + +lock -w /var/lock/init.d_${service_name}.lock $action "$@" +lock -u /var/lock/init.d_${service_name}.lock diff --git a/package/system/procd/files/procd.sh b/package/system/procd/files/procd.sh index b4b6faa662..b7d7b94ff1 100644 --- a/package/system/procd/files/procd.sh +++ b/package/system/procd/files/procd.sh @@ -38,20 +38,6 @@ PROCD_RELOAD_DELAY=1000 _PROCD_SERVICE= -procd_lock() { - local basescript=$(readlink "$initscript") - local service_name="$(basename ${basescript:-$initscript})" - - flock -n 1000 &> /dev/null - if [ "$?" != "0" ]; then - exec 1000>/var/lock/procd_${service_name}.lock - flock 1000 - if [ "$?" != "0" ]; then - logger "warning: procd flock for $service_name failed" - fi - fi -} - _procd_call() { local old_cb @@ -61,7 +47,6 @@ _procd_call() { } _procd_wrapper() { - procd_lock while [ -n "$1" ]; do eval "$1() { _procd_call _$1 \"\$@\"; }" shift -- 2.11.0 _______________________________________________ Lede-dev mailing list Lede-dev@lists.infradead.org http://lists.infradead.org/mailman/listinfo/lede-dev