2022-03-05 13:13:49 +08:00
|
|
|
#!/bin/sh /etc/rc.common
|
|
|
|
|
|
|
|
START=99
|
|
|
|
STOP=15
|
|
|
|
|
2022-03-11 18:29:27 +08:00
|
|
|
CONFIG=passwall2
|
2022-03-05 13:13:49 +08:00
|
|
|
APP_FILE=/usr/share/${CONFIG}/app.sh
|
|
|
|
LOCK_FILE_DIR=/var/lock
|
|
|
|
LOCK_FILE=${LOCK_FILE_DIR}/${CONFIG}.lock
|
|
|
|
|
|
|
|
set_lock() {
|
|
|
|
[ ! -d "$LOCK_FILE_DIR" ] && mkdir -p $LOCK_FILE_DIR
|
|
|
|
exec 999>"$LOCK_FILE"
|
|
|
|
flock -xn 999
|
|
|
|
}
|
|
|
|
|
|
|
|
unset_lock() {
|
|
|
|
flock -u 999
|
|
|
|
rm -rf "$LOCK_FILE"
|
|
|
|
}
|
|
|
|
|
|
|
|
unlock() {
|
|
|
|
failcount=1
|
|
|
|
while [ "$failcount" -le 10 ]; do
|
|
|
|
if [ -f "$LOCK_FILE" ]; then
|
|
|
|
let "failcount++"
|
|
|
|
sleep 1s
|
|
|
|
[ "$failcount" -ge 10 ] && unset_lock
|
|
|
|
else
|
|
|
|
break
|
|
|
|
fi
|
|
|
|
done
|
|
|
|
}
|
|
|
|
|
|
|
|
boot() {
|
2023-03-12 16:22:02 +08:00
|
|
|
local delay=$(uci -q get ${CONFIG}.@global_delay[0].start_delay || echo 1)
|
|
|
|
if [ "$delay" -gt 0 ]; then
|
|
|
|
$APP_FILE echolog "执行启动延时 $delay 秒后再启动!"
|
|
|
|
sleep $delay
|
|
|
|
fi
|
|
|
|
restart
|
2023-05-20 23:34:57 +08:00
|
|
|
touch ${LOCK_FILE_DIR}/${CONFIG}_ready.lock
|
2022-03-05 13:13:49 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
start() {
|
|
|
|
set_lock
|
|
|
|
[ $? == 1 ] && $APP_FILE echolog "脚本已经在运行,不重复运行,退出." && exit 0
|
|
|
|
$APP_FILE start
|
|
|
|
unset_lock
|
|
|
|
}
|
|
|
|
|
|
|
|
stop() {
|
|
|
|
unlock
|
|
|
|
set_lock
|
|
|
|
[ $? == 1 ] && $APP_FILE echolog "停止脚本等待超时,不重复运行,退出." && exit 0
|
|
|
|
$APP_FILE stop
|
|
|
|
unset_lock
|
|
|
|
}
|
|
|
|
|
|
|
|
restart() {
|
|
|
|
set_lock
|
|
|
|
[ $? == 1 ] && $APP_FILE echolog "脚本已经在运行,不重复运行,退出." && exit 0
|
|
|
|
$APP_FILE stop
|
|
|
|
$APP_FILE start
|
|
|
|
unset_lock
|
|
|
|
}
|
|
|
|
|
|
|
|
disable() {
|
|
|
|
rm -f "$IPKG_INSTROOT"/etc/rc.d/S??zzz_${CONFIG}
|
|
|
|
rm -f "$IPKG_INSTROOT"/etc/rc.d/K??zzz_${CONFIG}
|
|
|
|
}
|
|
|
|
|
|
|
|
enable() {
|
|
|
|
err=1
|
|
|
|
[ "$START" ] && \
|
|
|
|
ln -sf "../init.d/${CONFIG}" "$IPKG_INSTROOT/etc/rc.d/S${START}zzz_${CONFIG}" && \
|
|
|
|
err=0
|
|
|
|
[ "$STOP" ] && \
|
|
|
|
ln -sf "../init.d/${CONFIG}" "$IPKG_INSTROOT/etc/rc.d/K${STOP}zzz_${CONFIG}" && \
|
|
|
|
err=0
|
|
|
|
return $err
|
|
|
|
}
|
|
|
|
|
|
|
|
enabled() {
|
|
|
|
[ -x "$IPKG_INSTROOT/etc/rc.d/S${START}zzz_${CONFIG}" ]
|
|
|
|
}
|