mirror of
https://github.com/caiwx86/small-packages.git
synced 2026-10-30 00:15:13 +08:00
update 2026-09-07 05:54:25
This commit is contained in:
1 parent
4a4dfac1a2
commit
344aea7ec2
23 files changed
+208
-582
No files matched your search
@@ -1,39 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
STATE="/var/run/daede-dae.ready"
|
||||
LOG="/var/log/dae/dae.log"
|
||||
READY="Total startup time:"
|
||||
PID="$$"
|
||||
watcher_pid=
|
||||
|
||||
mark_state() {
|
||||
local value="$1" tmp="${STATE}.${PID}"
|
||||
printf '%s %s\n' "$PID" "$value" > "$tmp" && mv -f "$tmp" "$STATE"
|
||||
}
|
||||
|
||||
watch_ready() {
|
||||
local offset size
|
||||
offset="$(wc -c < "$LOG" 2>/dev/null || echo 0)"
|
||||
mark_state starting
|
||||
(
|
||||
while kill -0 "$PID" 2>/dev/null; do
|
||||
size="$(wc -c < "$LOG" 2>/dev/null || echo 0)"
|
||||
[ "$size" -lt "$offset" ] && offset=0
|
||||
if [ -r "$LOG" ] && tail -c "+$((offset + 1))" "$LOG" 2>/dev/null | grep -Fq "$READY"; then
|
||||
# Check before and after the atomic publish. If dae exits during this
|
||||
# window, remove the ready marker rather than leaving a false positive.
|
||||
[ "$(cat "$STATE" 2>/dev/null)" = "$PID starting" ] || exit 1
|
||||
kill -0 "$PID" 2>/dev/null || exit 1
|
||||
mark_state ready || exit 1
|
||||
kill -0 "$PID" 2>/dev/null || { rm -f "$STATE" "$STATE".*; exit 1; }
|
||||
[ "$(cat "$STATE" 2>/dev/null)" = "$PID ready" ] || exit 1
|
||||
exit 0
|
||||
fi
|
||||
sleep 1
|
||||
done
|
||||
) >/dev/null 2>&1 &
|
||||
watcher_pid=$!
|
||||
}
|
||||
|
||||
watch_ready
|
||||
exec /usr/bin/dae "$@"
|
||||
+4
-4
@@ -7,7 +7,7 @@ START=99
|
||||
extra_command "hot_reload" "Hot-reload service"
|
||||
|
||||
CONF="dae"
|
||||
PROG="/usr/bin/dae-guard"
|
||||
PROG="/usr/bin/dae"
|
||||
LOG_DIR="/var/log/dae"
|
||||
|
||||
start_service() {
|
||||
@@ -20,11 +20,12 @@ start_service() {
|
||||
local config_file
|
||||
config_get config_file "config" "config_file" "/etc/dae/config.dae"
|
||||
|
||||
/usr/bin/dae validate -c "$config_file" || return 1
|
||||
"$PROG" validate -c "$config_file" || return 1
|
||||
|
||||
local log_maxbackups log_maxsize
|
||||
config_get log_maxbackups "config" "log_maxbackups" "1"
|
||||
config_get log_maxsize "config" "log_maxsize" "1"
|
||||
|
||||
procd_open_instance "$CONF"
|
||||
procd_set_param env DAE_LOCATION_ASSET="/usr/share/v2ray" TZ="$(uci -q get system.@system[0].zonename)"
|
||||
procd_set_param command "$PROG" run
|
||||
@@ -57,7 +58,6 @@ stop_service() {
|
||||
fi
|
||||
# clean orphaned dae0
|
||||
ip link del dae0 2>/dev/null || true
|
||||
rm -f /var/run/daede-dae.ready /var/run/daede-dae.ready.*
|
||||
}
|
||||
|
||||
service_triggers() {
|
||||
@@ -65,5 +65,5 @@ service_triggers() {
|
||||
}
|
||||
|
||||
hot_reload() {
|
||||
/etc/init.d/dae running && /usr/bin/dae reload "$(cat /var/run/dae.pid)"
|
||||
/etc/init.d/dae running && "$PROG" reload "$(cat /var/run/dae.pid)"
|
||||
}
|
||||
Reference in new issue
Block a user