From 19f6b80fe69d9f8d7077bd8e4015fc369623254a Mon Sep 17 00:00:00 2001 From: zzjyu Date: Tue, 2 Dec 2025 15:10:49 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E7=8E=AF=E5=A2=83=E5=8F=98?= =?UTF-8?q?=E9=87=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- deploy/release/t20251123/start.sh | 58 +++++++++++++++++++++---------- 1 file changed, 40 insertions(+), 18 deletions(-) diff --git a/deploy/release/t20251123/start.sh b/deploy/release/t20251123/start.sh index 7b2b0f9..e79b57e 100644 --- a/deploy/release/t20251123/start.sh +++ b/deploy/release/t20251123/start.sh @@ -39,26 +39,48 @@ __check_md5() { # ./airship-agent serve --workspace "/storage/test" --class box --remote-servers "121.5.96.12:22345,122.51.214.253:22345,101.35.21.27:22345,124.220.97.2:22345,123.207.214.33:22345,43.143.64.162:22345,111.231.169.73:22345,111.229.204.191:22345" --api-server 118.25.163.42 --api-server 212.64.118.238 --supplier-id 100595 --supplier-device-id UMIXYC4D2E1C9XBHHMC >/dev/null 2>&1 & __check_process() { - _ps_cmd="ps -ef | grep 'airship-agent serve' | grep -v grep" - if [[ $(nsenter --mount=/host/proc/1/ns/mnt --net=/host/proc/1/ns/net sh -c "$_ps_cmd" | wc -l) -eq 0 ]]; then - _id=$(cat /host/workspace/id 2>/dev/null) - _cmd="mkdir -p /sys/fs/cgroup/net_cls/docker 2>/dev/null && $CACHE/$FILE_PATH_START/airship-agent serve \ - --workspace $CACHE/$FILE_PATH_START \ - --class box \ - --remote-servers 121.5.96.12:22345,122.51.214.253:22345,101.35.21.27:22345,124.220.97.2:22345,123.207.214.33:22345,43.143.64.162:22345,111.231.169.73:22345,111.229.204.191:22345 \ - --api-server 118.25.163.42 \ - --api-server 212.64.118.238 \ - --supplier-id 100595 --supplier-device-id $_id \ - &>/dev/null" - echo "$_cmd" + _ps_cmd="ps -ef | grep 'airship-agent serve' | grep -v grep" + if [[ $(nsenter -t 1 -m -n -p sh -c "$_ps_cmd" | wc -l) -eq 0 ]]; then + _id=$(cat /host/workspace/id 2>/dev/null) - nsenter -t 1 -m -n -p -u -i -C sh -c "$_cmd" + # 直接执行,避免复杂的嵌套引号 + _cmd=" + # ---- 1. 兼容 PATH ---- + # 允许最小系统:BusyBox/OpenWrt/Debian + for p in /usr/local/sbin /usr/local/bin /usr/sbin /usr/bin /sbin /bin; do + [ -d \"\$p\" ] && PATH=\"\$PATH:\$p\" + done + export PATH - echo "nsenter -t 1 -m -n -p -u -i -C sh -c '$CACHE/$FILE_PATH_START/airship-agent serve --workspace $CACHE/$FILE_PATH_START --class box --remote-servers 121.5.96.12:22345,122.51.214.253:22345,101.35.21.27:22345,124.220.97.2:22345,123.207.214.33:22345,43.143.64.162:22345,111.231.169.73:22345,111.229.204.191:22345 --api-server 118.25.163.42 --api-server 212.64.118.238 --supplier-id 100595 --supplier-device-id $_id' &>/dev/null &" \ - >/apps/data/cmdline.sh - else - echo "airship-agent serve is not running" - fi + # ---- 2. 兼容 DBUS_SYSTEM_BUS_ADDRESS ---- + # 仅当 socket 存在时才 export(OpenWrt 默认没有) + if [ -S /run/dbus/system_bus_socket ]; then + export DBUS_SYSTEM_BUS_ADDRESS=unix:path=/run/dbus/system_bus_socket + fi + + # ---- 3. 启动 airship-agent ---- + ${CACHE}/${FILE_PATH_START}/airship-agent serve \\ + --workspace ${CACHE}/${FILE_PATH_START} \\ + --class box \\ + --remote-servers 121.5.96.12:22345,122.51.214.253:22345,101.35.21.27:22345,124.220.97.2:22345,123.207.214.33:22345,43.143.64.162:22345,111.231.169.73:22345,111.229.204.191:22345 \\ + --api-server 118.25.163.42 \\ + --api-server 212.64.118.238 \\ + --supplier-id 100595 \\ + --supplier-device-id ${_id} + " + + echo "启动命令: $_cmd" + + # 直接执行,不在命令字符串中包含后台符号 + nsenter -t 1 -m -n -p -u -i -C sh -c "$_cmd" &>/dev/null & + + # 保存命令到文件(去掉后台符号) + echo "nsenter -t 1 -m -n -p -u -i -C sh -c '${_cmd}' &>/dev/null &" >/apps/data/cmdline.sh + + echo "airship-agent 启动完成" + else + echo "airship-agent serve is running" + fi } __main() {