46 lines
1.2 KiB
Bash
46 lines
1.2 KiB
Bash
#!/bin/bash
|
|||
|
|
# 智能荐股系统 启动脚本
|
||
|
|
# 用法: ./start.sh [start|stop|restart|status|seed]
|
||
|
|
DIR="$(cd "$(dirname "$0")" && pwd)"
|
||
|
|
PORT=16095
|
||
|
|
PY=/home/hz1/miniconda3/envs/openclaw/bin/python3
|
||
|
|
LOG="$DIR/logs/app.log"
|
||
|
|
PID_FILE="$DIR/logs/app.pid"
|
||
|
|
|
||
|
|
start() {
|
||
|
|
if [ -f "$PID_FILE" ] && kill -0 "$(cat "$PID_FILE")" 2>/dev/null; then
|
||
|
|
echo "已在运行 PID=$(cat "$PID_FILE")"
|
||
|
|
return
|
||
|
|
fi
|
||
|
|
cd "$DIR"
|
||
|
|
nohup "$PY" app.py >> "$LOG" 2>&1 &
|
||
|
|
echo $! > "$PID_FILE"
|
||
|
|
sleep 2
|
||
|
|
IP=$(hostname -I 2>/dev/null | awk '{print $1}')
|
||
|
|
echo "✅ 智能荐股系统 已启动 http://${IP}:$PORT (PID $(cat "$PID_FILE"))"
|
||
|
|
echo " 日志: $LOG"
|
||
|
|
}
|
||
|
|
|
||
|
|
stop() {
|
||
|
|
if [ -f "$PID_FILE" ]; then
|
||
|
|
kill "$(cat "$PID_FILE")" 2>/dev/null
|
||
|
|
rm -f "$PID_FILE"
|
||
|
|
echo "已停止"
|
||
|
|
else
|
||
|
|
echo "未在运行"
|
||
|
|
fi
|
||
|
|
}
|
||
|
|
|
||
|
|
case "${1:-start}" in
|
||
|
|
start) start ;;
|
||
|
|
stop) stop ;;
|
||
|
|
restart) stop; sleep 1; start ;;
|
||
|
|
status)
|
||
|
|
if [ -f "$PID_FILE" ] && kill -0 "$(cat "$PID_FILE")" 2>/dev/null; then
|
||
|
|
echo "运行中 PID=$(cat "$PID_FILE")"; curl -s -m 5 "http://127.0.0.1:$PORT/api/health"; echo
|
||
|
|
else
|
||
|
|
echo "未运行"
|
||
|
|
fi ;;
|
||
|
|
seed) cd "$DIR" && "$PY" seed_data.py "${2:-}" ;;
|
||
|
|
*) echo "用法: $0 [start|stop|restart|status|seed]"; exit 1 ;;
|
||
|
|
esac
|