blob: 30cc24ebf8d679cb45c2ef0c2af43cad25a103ae (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
#!/bin/bash
# MCP server 启动 wrapper:检测 tmux session name 并传给 python
# 用进程树反查 pane PID → session name
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
# 检测 session name: 遍历 PID 往上找
detect_session() {
local check_pid=$$
local pane_pids
pane_pids=$(tmux list-panes -a -F "#{pane_pid} #{session_name}" 2>/dev/null) || return
for i in $(seq 1 50); do
local match
match=$(echo "$pane_pids" | grep "^${check_pid} " | head -1 | cut -d' ' -f2)
if [ -n "$match" ]; then
echo "$match"
return
fi
# 获取 PPID
local ppid
ppid=$(awk '{print $4}' /proc/${check_pid}/stat 2>/dev/null) || return
[ "$ppid" -le 1 ] && return
check_pid=$ppid
done
}
export CLAUDE_SESSION_NAME=$(detect_session)
exec python3 "$SCRIPT_DIR/mcp_lab_worker.py"
|