找到nohup启动的程序并杀死
- 查看进程(找出 PID)
# 精确按命令行匹配(推荐)
pgrep -fa 'nohup执行的命令'
# 或者按关键字找
pgrep -fa 'hohup执行的命令'
ps -u "$USER" -o pid,ppid,pgid,etime,cmd | grep 'huggingface-cli' | grep -v grep
- 优雅结束(先 TERM,再 KILL)
假设查到 PID=12345
kill -15 12345 # 优雅退出,让它清理/落盘
sleep 2
pgrep -fa 12345 || echo "已退出"
若还在:
kill -9 12345 # 强制结束(不做清理,但 hf 支持断点续传,问题不大)
- 结束整组(包含可能的子进程)
有时你想把该命令及其子进程一起干掉:
PID=12345
PGID=$(ps -o pgid= -p "$PID" | tr -d ' ')
kill -TERM -"$PGID" # 先优雅地杀整个进程组
sleep 2
pgrep -g "$PGID" >/dev/null && kill -KILL -"$PGID" # 还在就强杀
- 一把梭(匹配整条命令)
# 杀掉所有匹配该下载命令的进程
pkill -f 'huggingface-cli download Qwen/Qwen3-Next-80B-A3B-Instruct'
- 看下载进度/是否还在跑
# 实时看日志
tail -f qwen3_download_*.log
# 看文件夹体积是否在增长
watch -n 2 'du -sh ./models/qwen3'
# 看某 PID 的资源占用
top -p <PID> # 或 htop
- 小贴士
• 你原命令里 echo “PID: $!” 会打印当时的后台 PID;丢了也没事,用上面的 pgrep -fa 能找回。
• 先用 kill -15,只有卡住才 kill -9。强杀可能留下部分临时文件,但 --resume-download 会自动断点续传。
• 如果是用 sudo 启的进程,查询/结束时也要加 sudo。