Fix quick-update PM2 path when crypto_okx was never started.
Stop trusting pm2 pid; start ecosystem if the app is missing. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
+36
-10
@@ -17,6 +17,27 @@ if [[ "${1:-}" == "--dry-run" ]]; then
|
|||||||
echo "(dry-run mode)"
|
echo "(dry-run mode)"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
pm2_has_app() {
|
||||||
|
local name="$1"
|
||||||
|
if ! command -v pm2 >/dev/null 2>&1; then
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
# 勿用 pm2 pid:部分版本对不存在进程仍 exit 0
|
||||||
|
if command -v python3 >/dev/null 2>&1; then
|
||||||
|
pm2 jlist 2>/dev/null | python3 -c '
|
||||||
|
import json,sys
|
||||||
|
name=sys.argv[1]
|
||||||
|
try:
|
||||||
|
apps=json.load(sys.stdin)
|
||||||
|
except Exception:
|
||||||
|
sys.exit(1)
|
||||||
|
sys.exit(0 if any(isinstance(a,dict) and a.get("name")==name for a in (apps or [])) else 1)
|
||||||
|
' "${name}"
|
||||||
|
return $?
|
||||||
|
fi
|
||||||
|
pm2 describe "${name}" 2>/dev/null | grep -qE 'status[[:space:]]*[|:]'
|
||||||
|
}
|
||||||
|
|
||||||
cd "${REPO}"
|
cd "${REPO}"
|
||||||
echo ">>> git pull"
|
echo ">>> git pull"
|
||||||
git pull
|
git pull
|
||||||
@@ -26,17 +47,22 @@ if [[ "${DRY}" -eq 1 ]]; then
|
|||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo ">>> pm2 restart ${PM2_APP_NAME} --update-env"
|
if ! command -v pm2 >/dev/null 2>&1; then
|
||||||
if command -v pm2 >/dev/null 2>&1; then
|
|
||||||
if pm2 pid "${PM2_APP_NAME}" >/dev/null 2>&1; then
|
|
||||||
pm2 restart "${PM2_APP_NAME}" --update-env
|
|
||||||
elif [[ -f ecosystem.config.cjs ]]; then
|
|
||||||
pm2 start ecosystem.config.cjs
|
|
||||||
else
|
|
||||||
echo "warn: 未找到 PM2 进程 ${PM2_APP_NAME}" >&2
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
echo "warn: 未安装 pm2" >&2
|
echo "warn: 未安装 pm2" >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ ! -f ecosystem.config.cjs ]]; then
|
||||||
|
echo "error: 缺少 ecosystem.config.cjs" >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if pm2_has_app "${PM2_APP_NAME}"; then
|
||||||
|
echo ">>> pm2 restart ${PM2_APP_NAME} --update-env"
|
||||||
|
pm2 restart "${PM2_APP_NAME}" --update-env
|
||||||
|
else
|
||||||
|
echo ">>> 未注册 ${PM2_APP_NAME},执行 pm2 start ecosystem.config.cjs"
|
||||||
|
pm2 start ecosystem.config.cjs
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "done"
|
echo "done"
|
||||||
|
|||||||
Reference in New Issue
Block a user