2025-10-17 17:21:18 +08:00
|
|
|
|
请勿关闭此电脑
|
|
|
|
|
|
|
2025-10-17 16:25:34 +08:00
|
|
|
|
## 修改vLLM运行gpt-oss-120b的脚本
|
|
|
|
|
|
|
|
|
|
|
|
在 nohup 的启动命令末尾追加如下片段,保存 vLLM 的进程 PID 号。
|
|
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
echo $! > /hook/gpt-oss-120b.pid
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
## 创建一个定时任务 bash 脚本
|
|
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
vim /hook/timer_bash.sh
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
#!/bin/bash
|
|
|
|
|
|
|
2025-10-17 17:01:15 +08:00
|
|
|
|
# 目标进程的 PID 文件路径
|
2025-10-17 16:25:34 +08:00
|
|
|
|
TARGET_PID_FILE="/hook/gpt-oss-120b.pid"
|
2025-10-17 17:01:15 +08:00
|
|
|
|
|
|
|
|
|
|
# tshark_bash 的 PID 文件路径
|
2025-10-17 16:25:34 +08:00
|
|
|
|
TSARK_PID_FILE="/hook/tshark_bash.pid"
|
|
|
|
|
|
|
2025-10-17 17:01:15 +08:00
|
|
|
|
# tshark_bash 脚本路径
|
|
|
|
|
|
TSARK_SCRIPT_PATH="/hook/tshark_bash.sh"
|
|
|
|
|
|
|
|
|
|
|
|
# tshark_bash 日志文件路径
|
|
|
|
|
|
TSARK_LOG_FILE="/hook/tshark_bash.log"
|
|
|
|
|
|
|
|
|
|
|
|
# shark.log 文件路径
|
|
|
|
|
|
SHARK_LOG_FILE="/hook/shark.log"
|
|
|
|
|
|
|
|
|
|
|
|
# 临时目录下要删除的 pcapng 文件路径模式
|
|
|
|
|
|
PCAPNG_FILES_PATTERN="/tmp/*.pcapng"
|
|
|
|
|
|
|
|
|
|
|
|
# 5分钟检查一次 vllm 进程是否存活
|
|
|
|
|
|
# 若 vllm 进程存活,清理 tshark 的临时文件,然后重启 tshark 脚本继续抓包
|
|
|
|
|
|
# 若 vllm 进程已死亡则 kill tshark 的进程
|
|
|
|
|
|
|
2025-10-17 16:25:34 +08:00
|
|
|
|
while true; do
|
|
|
|
|
|
if [[ -f "$TARGET_PID_FILE" ]]; then
|
|
|
|
|
|
TARGET_PID=$(cat "$TARGET_PID_FILE" 2>/dev/null)
|
|
|
|
|
|
if [[ "$TARGET_PID" =~ ^[0-9]+$ ]] && ps -p "$TARGET_PID" > /dev/null 2>&1; then
|
|
|
|
|
|
echo "$(date): 目标进程 (PID: $TARGET_PID) 存活,执行相应操作..."
|
|
|
|
|
|
if [[ -f "$TSARK_PID_FILE" ]]; then
|
|
|
|
|
|
TSHARK_PID=$(cat "$TSARK_PID_FILE" 2>/dev/null)
|
|
|
|
|
|
if [[ "$TSHARK_PID" =~ ^[0-9]+$ ]]; then
|
|
|
|
|
|
kill -9 "$TSHARK_PID" 2>/dev/null
|
|
|
|
|
|
echo "已强制杀死 tshark_bash 进程 (PID: $TSHARK_PID)"
|
|
|
|
|
|
else
|
|
|
|
|
|
echo "tshark_bash.pid 文件内容无效或为空,跳过 kill 操作"
|
|
|
|
|
|
fi
|
|
|
|
|
|
else
|
|
|
|
|
|
echo "tshark_bash.pid 文件不存在,跳过 kill 操作"
|
|
|
|
|
|
fi
|
|
|
|
|
|
|
2025-10-17 17:01:15 +08:00
|
|
|
|
if [[ -f "$SHARK_LOG_FILE" ]]; then
|
|
|
|
|
|
rm -rf "$SHARK_LOG_FILE"
|
|
|
|
|
|
echo "已删除 $SHARK_LOG_FILE"
|
2025-10-17 16:25:34 +08:00
|
|
|
|
else
|
2025-10-17 17:01:15 +08:00
|
|
|
|
echo "$SHARK_LOG_FILE 文件不存在,跳过删除"
|
2025-10-17 16:25:34 +08:00
|
|
|
|
fi
|
|
|
|
|
|
|
2025-10-17 17:01:15 +08:00
|
|
|
|
if ls $PCAPNG_FILES_PATTERN >/dev/null 2>&1; then
|
|
|
|
|
|
rm -rf $PCAPNG_FILES_PATTERN
|
|
|
|
|
|
echo "已删除 $PCAPNG_FILES_PATTERN 文件"
|
2025-10-17 16:25:34 +08:00
|
|
|
|
else
|
2025-10-17 17:01:15 +08:00
|
|
|
|
echo "没有找到 $PCAPNG_FILES_PATTERN 文件,跳过删除"
|
2025-10-17 16:25:34 +08:00
|
|
|
|
fi
|
|
|
|
|
|
|
2025-10-17 17:01:15 +08:00
|
|
|
|
echo "重启 tshark_bash.sh..."
|
|
|
|
|
|
sudo nohup bash "$TSARK_SCRIPT_PATH" >> "$TSARK_LOG_FILE" 2>&1 &
|
2025-10-17 16:25:34 +08:00
|
|
|
|
NEW_TSHARK_PID=$!
|
|
|
|
|
|
echo "$NEW_TSHARK_PID" > "$TSARK_PID_FILE"
|
|
|
|
|
|
echo "已启动 tshark_bash.sh,新 PID: $NEW_TSHARK_PID,已写入 $TSARK_PID_FILE"
|
|
|
|
|
|
|
|
|
|
|
|
else
|
|
|
|
|
|
echo "$(date): 目标进程 (PID: ${TARGET_PID:-未知}) 不存在或已挂掉,执行清理操作..."
|
|
|
|
|
|
|
|
|
|
|
|
if [[ -f "$TSARK_PID_FILE" ]]; then
|
|
|
|
|
|
TSHARK_PID=$(cat "$TSARK_PID_FILE" 2>/dev/null)
|
|
|
|
|
|
if [[ "$TSHARK_PID" =~ ^[0-9]+$ ]]; then
|
|
|
|
|
|
kill -9 "$TSHARK_PID" 2>/dev/null
|
|
|
|
|
|
echo "已强制杀死 tshark_bash 进程 (PID: $TSHARK_PID)"
|
|
|
|
|
|
else
|
|
|
|
|
|
echo "tshark_bash.pid 文件内容无效或为空,跳过 kill 操作"
|
|
|
|
|
|
fi
|
|
|
|
|
|
else
|
|
|
|
|
|
echo "tshark_bash.pid 文件不存在,跳过 kill 操作"
|
|
|
|
|
|
fi
|
|
|
|
|
|
|
2025-10-17 17:01:15 +08:00
|
|
|
|
if ls $PCAPNG_FILES_PATTERN >/dev/null 2>&1; then
|
|
|
|
|
|
rm -rf $PCAPNG_FILES_PATTERN
|
|
|
|
|
|
echo "已删除 $PCAPNG_FILES_PATTERN 文件"
|
2025-10-17 16:25:34 +08:00
|
|
|
|
else
|
2025-10-17 17:01:15 +08:00
|
|
|
|
echo "没有找到 $PCAPNG_FILES_PATTERN 文件,跳过删除"
|
2025-10-17 16:25:34 +08:00
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
|
|
echo "目标进程已挂掉,已执行清理操作。"
|
|
|
|
|
|
fi
|
|
|
|
|
|
else
|
|
|
|
|
|
echo "$(date): 目标 PID 文件 $TARGET_PID_FILE 不存在,跳过本次检查。"
|
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
|
|
sleep 300
|
|
|
|
|
|
done
|
|
|
|
|
|
```
|
|
|
|
|
|
|
2025-10-17 16:28:41 +08:00
|
|
|
|
## 定时任务
|
2025-10-17 16:25:34 +08:00
|
|
|
|
|
|
|
|
|
|
##### 第一次运行先赋权
|
|
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
chmod +x vim /hook/timer_bash.sh
|
|
|
|
|
|
```
|
|
|
|
|
|
|
2025-10-17 16:28:41 +08:00
|
|
|
|
##### 运行
|
2025-10-17 16:25:34 +08:00
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
sudo nohup /hook/timer_bash.sh > /hook/timer_bash.log 2>&1 & echo $! > /hook/timer_bash.pid
|
|
|
|
|
|
```
|
|
|
|
|
|
|
2025-10-17 16:28:41 +08:00
|
|
|
|
##### 停止
|
2025-10-17 16:25:34 +08:00
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
kill $(cat /hook/timer_bash.pid)
|
2025-10-17 16:28:41 +08:00
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
## 抓包脚本
|
|
|
|
|
|
|
|
|
|
|
|
##### 运行
|
|
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
sudo nohup bash /hook/tshark_bash.sh >> /hook/tshark_bash.log 2>&1 & echo $! > /hook/tshark_bash.pid
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
##### 停止
|
|
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
kill -9 $(cat /hook/tshark_bash.pid)
|
2025-10-17 16:25:34 +08:00
|
|
|
|
```
|