feat(moicen): htyts/htyproc 与一键栈一致的 nohup 与 logrotate 日志

- start.sh:清代理、可选 --release、追加 *.nohup.log
- moicen_start:默认在有 htyproc/.env 时起 htyproc(MOICEN_START_HTYPROC=0|no 可关)
- moicen_stop:pkill 含 htyproc

Made-with: Cursor
This commit is contained in:
2026-04-26 20:22:15 +08:00
parent 917685eeb5
commit 517023a6cd
4 changed files with 60 additions and 21 deletions
+18 -9
View File
@@ -1,9 +1,18 @@
#!/bin/sh
set -x
echo "----------------------------" >> htyproc.log
echo "$(date)" >> htyproc.log
echo "----------------------------" >> htyproc.log
nohup cargo run >> htyproc.log &
#!/usr/bin/env bash
# 与 scripts/moicen_start_huiwings_stack.sh 一致:清代理、可选 --release、追加 htyproc.nohup.log(纳入 logrotate.config)。
set -euo pipefail
HERE="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
cd "$HERE"
{
echo "----------------------------"
date
echo "----------------------------"
} >>htyproc.nohup.log
CARGO_NO_PROXY=(env -u ALL_PROXY -u all_proxy -u http_proxy -u https_proxy -u HTTP_PROXY -u HTTPS_PROXY)
_SRC_ENV='[ -f "$HOME/.cargo/env" ] && . "$HOME/.cargo/env"'
REL_CMD="exec cargo run"
if [ -f "$HERE/../target/release/htyproc" ]; then
REL_CMD="exec cargo run --release"
fi
nohup "${CARGO_NO_PROXY[@]}" bash -c "$_SRC_ENV; $REL_CMD" >>htyproc.nohup.log 2>&1 &
echo "htyproc pid=$! 日志: $HERE/htyproc.nohup.log"
+18 -9
View File
@@ -1,9 +1,18 @@
#!/bin/sh
set -x
echo "----------------------------" >> htyts.log
echo "$(date)" >> htyts.log
echo "----------------------------" >> htyts.log
nohup cargo run >> htyts.log &
#!/usr/bin/env bash
# 与 scripts/moicen_start_huiwings_stack.sh 一致:清代理、可选 --release、追加 htyts.nohup.log(纳入 logrotate.config)。
set -euo pipefail
HERE="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
cd "$HERE"
{
echo "----------------------------"
date
echo "----------------------------"
} >>htyts.nohup.log
CARGO_NO_PROXY=(env -u ALL_PROXY -u all_proxy -u http_proxy -u https_proxy -u HTTP_PROXY -u HTTPS_PROXY)
_SRC_ENV='[ -f "$HOME/.cargo/env" ] && . "$HOME/.cargo/env"'
REL_CMD="exec cargo run"
if [ -f "$HERE/../target/release/htyts" ]; then
REL_CMD="exec cargo run --release"
fi
nohup "${CARGO_NO_PROXY[@]}" bash -c "$_SRC_ENV; $REL_CMD" >>htyts.nohup.log 2>&1 &
echo "htyts pid=$! 日志: $HERE/htyts.nohup.log"
+21
View File
@@ -4,6 +4,7 @@
# 日志轮转:见仓库 `huike-back/run_rotate.sh` 与 `plan_skills/moicen/moicen-cutover-config-worklog-2026-04-26.md` §8.1(新机 weli crontab 每 5 分钟)。
# 在 huike-back 根以: ./scripts/moicen_start_huiwings_stack.sh
# htyts:存在 htyts/.env 且未设 MOICEN_START_HTYTS=0|no 时默认随栈启动;否则显式 MOICEN_START_HTYTS=1|yes。
# htyproc:存在 htyproc/.env 且未设 MOICEN_START_HTYPROC=0|no 时默认随栈启动;否则显式 MOICEN_START_HTYPROC=1|yes(建议在 htyts 之后起)。
# 可设 MOICEN_HUIKE_ROOT / MOICEN_AUTH_ROOT 为绝对路径(默认=本脚本的 ../ 与 ../AuthCore)。
set -euo pipefail
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
@@ -70,9 +71,29 @@ if [ "$_start_htyts" = 1 ]; then
( cd "$HUIKE/htyts" && nohup "${CARGO_NO_PROXY[@]}" bash -c "$_SRC_ENV; exec cargo run $REL" >>"$HUIKE/htyts/htyts.nohup.log" 2>&1 ) &
fi
# htyproc:显式 MOICEN_START_HTYPROC=1|yes;或未设置且存在 htyproc/.env 时默认启动。MOICEN_START_HTYPROC=0|no 则不启动。
_start_htyproc=0
if [ -d "$HUIKE/htyproc" ]; then
if [ "${MOICEN_START_HTYPROC:-}" = 0 ] || [ "${MOICEN_START_HTYPROC:-}" = no ]; then
_start_htyproc=0
elif [ "${MOICEN_START_HTYPROC:-}" = 1 ] || [ "${MOICEN_START_HTYPROC:-}" = yes ]; then
_start_htyproc=1
elif [ -f "$HUIKE/htyproc/.env" ]; then
_start_htyproc=1
fi
fi
if [ "$_start_htyproc" = 1 ]; then
( cd "$HUIKE/htyproc" && nohup "${CARGO_NO_PROXY[@]}" bash -c "$_SRC_ENV; exec cargo run $REL" >>"$HUIKE/htyproc/htyproc.nohup.log" 2>&1 ) &
fi
echo "已后台启动。日志: $AUTH/htyuc/htyuc.nohup.log, $HUIKE/htyws/htyws.nohup.log, $HUIKE/htykc/htykc.nohup.log"
if [ "$_start_htyts" = 1 ]; then
echo "htyts 已启动(或已设 MOICEN_START_HTYTS=1|yes)。日志: $HUIKE/htyts/htyts.nohup.log"
else
echo "htyts 未启动:无 htyts/.env 时请 cp envs/moicen/htyts.env;需显式关闭时 export MOICEN_START_HTYTS=0"
fi
if [ "$_start_htyproc" = 1 ]; then
echo "htyproc 已启动。日志: $HUIKE/htyproc/htyproc.nohup.log"
else
echo "htyproc 未启动:无 htyproc/.env 时请 cp envs/moicen/htyproc.env;需显式关闭时 export MOICEN_START_HTYPROC=0"
fi
+3 -3
View File
@@ -1,7 +1,7 @@
#!/usr/bin/env bash
# 在**即将下线的** moicen 或切流量前,结束 UC/WS/KC/htyts 的 cargo 可执行体(与 ps 里 /target/.../htyuc|htyws|htykc|htyts 匹配)。勿在有其它同名进程的主机上盲目使用。
# 在**即将下线的** moicen 或切流量前,结束 UC/WS/KC/htyts/htyproc 的 cargo 可执行体(与 ps 里 /target/.../ 匹配)。勿在有其它同名进程的主机上盲目使用。
set -euo pipefail
for p in htyuc htyws htykc htyts; do
for p in htyuc htyws htykc htyts htyproc; do
pkill -f "/target/.*/$p" 2>/dev/null || true
done
echo "已发送 pkill;请 ps 确认无残留;admin/ts 前端的反代在其余入口自行维护。"
echo "已发送 pkill;请 ps 确认无残留;admin/ts/proc 前端的反代在其余入口自行维护。"