33 lines
1.1 KiB
Bash
Executable File
33 lines
1.1 KiB
Bash
Executable File
#!/usr/bin/env bash
|
||
set -e
|
||
WORKDIR="$(cd "$(dirname "$0")" && pwd)"
|
||
cd "$WORKDIR"
|
||
|
||
# 加载本机敏感环境变量(如短信密钥),不存在则跳过(该文件不入库)
|
||
[ -f .smssend ] && source .smssend
|
||
|
||
# 运行模式:all(默认,HTTP+poller) / web(仅HTTP,无poller) / worker(仅poller,分布式worker节点)
|
||
MODE="${1:-all}"
|
||
case "$MODE" in
|
||
web) PORT=9090; PIDFILE="pipeline-web.pid"; PIPELINE_MODE=web ;;
|
||
worker) PORT=9091; PIDFILE="pipeline-worker.pid"; PIPELINE_MODE=worker ;;
|
||
all) PORT=9090; PIDFILE="pipeline.pid"; PIPELINE_MODE=all ;;
|
||
*) echo "用法: $0 [web|worker|all]"; exit 1 ;;
|
||
esac
|
||
export PIPELINE_MODE
|
||
|
||
if [ -f "$PIDFILE" ]; then
|
||
pid=$(cat "$PIDFILE")
|
||
if kill -0 "$pid" 2>/dev/null; then
|
||
echo "Already running (PID $pid)"
|
||
exit 0
|
||
fi
|
||
rm -f "$PIDFILE"
|
||
fi
|
||
|
||
echo "Starting pipeline-app ($MODE mode) on port $PORT..."
|
||
export PATH="$WORKDIR/bin:$PATH"
|
||
$WORKDIR/py3/bin/python $WORKDIR/app/pipeline_app.py -p $PORT -w $WORKDIR >> $WORKDIR/logs/pipeline.log 2>&1 &
|
||
echo $! > "$PIDFILE"
|
||
echo "Started PID $(cat $PIDFILE)"
|