首次提交

This commit is contained in:
2026-09-28 16:09:31 +08:00
commit 4a6839319a
71 changed files with 12144 additions and 0 deletions

52
scripts/stop.sh Normal file
View File

@@ -0,0 +1,52 @@
#!/usr/bin/env bash
# 停止本项目所有进程(主程序 + 进程池worker + ffmpeg子进程 + coscli)。
# 用法: bash stop.sh 普通停止
# bash stop.sh -y 不确认直接停
set -u
echo "==> 即将停止的进程:"
ps -eo pid,etime,rss,args 2>/dev/null | grep -E "main\.py|run_worker\.py|multiprocessing|forkserver|[f]fmpeg|[c]oscli" | grep -v grep | grep -v "stop.sh" || echo " (没找到运行中的进程)"
echo ""
if [ "${1:-}" != "-y" ]; then
read -r -p "确认全部杀掉? [y/N] " ans
case "$ans" in
y|Y) ;;
*) echo "已取消"; exit 0 ;;
esac
fi
echo "==> 1. 杀主程序 + 进程池worker"
pkill -9 -f "main.py" 2>/dev/null && echo " ✓ main.py"
pkill -9 -f "run_worker.py" 2>/dev/null && echo " ✓ run_worker.py"
pkill -9 -f "multiprocessing" 2>/dev/null && echo " ✓ multiprocessing worker"
pkill -9 -f "forkserver" 2>/dev/null && echo " ✓ forkserver"
echo "==> 2. 杀 ffmpeg 子进程(不会自动死, 必须单独杀, 否则占GPU/CPU)"
pkill -9 ffmpeg 2>/dev/null && echo " ✓ ffmpeg"
pkill -9 ffprobe 2>/dev/null && echo " ✓ ffprobe"
echo "==> 3. 杀残留 coscli(正在传输的)"
pkill -9 -f "coscli" 2>/dev/null && echo " ✓ coscli"
sleep 1
echo ""
echo "==> 检查残留:"
LEFT=$(ps -eo pid,args 2>/dev/null | grep -E "main\.py|run_worker\.py|multiprocessing|forkserver|[f]fmpeg|[c]oscli" | grep -v grep | grep -v "stop.sh")
if [ -z "$LEFT" ]; then
echo " ✓ 全部已停止"
else
echo " ⚠️ 仍有残留, 再杀一次:"
echo "$LEFT"
echo "$LEFT" | awk '{print $1}' | xargs -r kill -9 2>/dev/null
echo " 已强制杀掉"
fi
# 可选: 看GPU是否释放
if command -v nvidia-smi >/dev/null 2>&1; then
echo ""
echo "==> GPU 占用(确认ffmpeg/whisper已释放):"
nvidia-smi --query-gpu=index,memory.used,utilization.gpu --format=csv,noheader 2>/dev/null
fi
echo ""
echo "停止完成。重启: bash scripts/启动.sh 30"