procd: fix procd_lock() when prepare_roofs

This fixes the following errors when doing "make package/install"

    /home/yousong/git-repo/lede-project/lede/build_dir/target-mips_24kc_musl/root-malta/lib/functions/procd.sh: line 47: /home/yousong/git-repo/l
    ede-project/lede/build_dir/target-mips_24kc_musl/root-malta/var/lock/procd_urandom_seed.lock: No such file or directory
    flock: 1000: Bad file descriptor

Fixes FS#1260

Signed-off-by: Yousong Zhou <yszhou4tech@gmail.com>
This commit is contained in:
Yousong Zhou 2018-01-28 09:43:30 +08:00
parent 53f62bc5e5
commit 60ad837bea
3 changed files with 5 additions and 3 deletions

View file

@ -60,6 +60,7 @@ define prepare_rootfs
$(call file_copy,$(TOPDIR)/files/.,$(1)); \ $(call file_copy,$(TOPDIR)/files/.,$(1)); \
fi fi
@mkdir -p $(1)/etc/rc.d @mkdir -p $(1)/etc/rc.d
@mkdir -p $(1)/var/lock
@( \ @( \
cd $(1); \ cd $(1); \
for script in ./usr/lib/opkg/info/*.postinst; do \ for script in ./usr/lib/opkg/info/*.postinst; do \
@ -84,6 +85,7 @@ define prepare_rootfs
rm -f $(1)/usr/lib/opkg/lists/* rm -f $(1)/usr/lib/opkg/lists/*
rm -f $(1)/usr/lib/opkg/info/*.postinst* rm -f $(1)/usr/lib/opkg/info/*.postinst*
rm -f $(1)/usr/lib/opkg/info/*.prerm* rm -f $(1)/usr/lib/opkg/info/*.prerm*
rm -f $(1)/var/lock/*.lock
$(call clean_ipkg,$(1)) $(call clean_ipkg,$(1))
$(call mklibs,$(1)) $(call mklibs,$(1))
endef endef

View file

@ -8,7 +8,7 @@
include $(TOPDIR)/rules.mk include $(TOPDIR)/rules.mk
PKG_NAME:=procd PKG_NAME:=procd
PKG_RELEASE:=1 PKG_RELEASE:=2
PKG_SOURCE_PROTO:=git PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL=$(PROJECT_GIT)/project/procd.git PKG_SOURCE_URL=$(PROJECT_GIT)/project/procd.git

View file

@ -33,7 +33,7 @@
# Send a signal to a service instance (or all instances) # Send a signal to a service instance (or all instances)
# #
. $IPKG_INSTROOT/usr/share/libubox/jshn.sh . "$IPKG_INSTROOT/usr/share/libubox/jshn.sh"
PROCD_RELOAD_DELAY=1000 PROCD_RELOAD_DELAY=1000
_PROCD_SERVICE= _PROCD_SERVICE=
@ -44,7 +44,7 @@ procd_lock() {
flock -n 1000 &> /dev/null flock -n 1000 &> /dev/null
if [ "$?" != "0" ]; then if [ "$?" != "0" ]; then
exec 1000>/var/lock/procd_${service_name}.lock exec 1000>"$IPKG_INSTROOT/var/lock/procd_${service_name}.lock"
flock 1000 flock 1000
if [ "$?" != "0" ]; then if [ "$?" != "0" ]; then
logger "warning: procd flock for $service_name failed" logger "warning: procd flock for $service_name failed"