38 lines
879 B
Bash
38 lines
879 B
Bash
#!/bin/bash
|
||
set -e
|
||
# entrypoint.sh — 启动 Next.js standalone server + Monitor Worker
|
||
|
||
echo "[entrypoint] Starting monitor-ai..."
|
||
|
||
# 启动 MonitorWorker(后台,tsx + tsconfig-paths 解析路径别名)
|
||
npx tsx -r tsconfig-paths/register scripts/monitor-worker.ts &
|
||
WORKER_PID=$!
|
||
|
||
# 启动 Next.js standalone server
|
||
node server.js &
|
||
NEXT_PID=$!
|
||
|
||
echo "[entrypoint] Worker PID: $WORKER_PID, Next.js PID: $NEXT_PID"
|
||
|
||
# 信号处理
|
||
cleanup() {
|
||
echo "[entrypoint] Shutting down..."
|
||
kill $WORKER_PID $NEXT_PID 2>/dev/null
|
||
wait
|
||
exit 0
|
||
}
|
||
trap cleanup SIGTERM SIGINT
|
||
|
||
# 守护循环:任一进程退出则容器退出
|
||
while true; do
|
||
if ! kill -0 $WORKER_PID 2>/dev/null; then
|
||
echo "[entrypoint] Worker process exited" >&2
|
||
exit 1
|
||
fi
|
||
if ! kill -0 $NEXT_PID 2>/dev/null; then
|
||
echo "[entrypoint] Next.js process exited" >&2
|
||
exit 1
|
||
fi
|
||
sleep 5
|
||
done
|