You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何获取指定Python脚本pisokjo.py对应的子进程PID?

解决提取Python脚本PID及终止进程的问题

先梳理你之前命令的问题

  • 所有使用awk '{print $1}'的命令都存在列号错误:ps -ef输出的第一列是运行进程的用户,PID实际在第二列,应该取$2
  • 第二个命令里pid=...和echo $pid之间没有分隔符(分号或换行),属于语法错误
  • 第三个命令逻辑完全偏离,查找$3里的|位置和提取PID毫无关系

正确的解决方法

方法1:用pgrep直接提取PID

pgrep是专门用于查找进程ID的工具,比ps+grep组合更简洁精准:

# 提取目标脚本的PID
pid=$(pgrep -f "pisokjo.py")
echo $pid
# 若需要终止进程,执行以下命令
sudo kill -9 $pid

-f参数表示匹配整个命令行,能精准定位到运行pisokjo.py的Python进程。

方法2:修正ps+grep+awk的组合命令

如果你习惯使用ps系列命令,修正列号和语法即可:

# 提取PID
pid=$(ps -ef | grep -i "[p]ython.*pisokjo.py" | awk '{print $2}')
echo $pid
# 终止进程
sudo kill -9 $pid
  • [p]ython.*pisokjo.py的写法能避免grep进程自身被匹配到
  • awk '{print $2}'正确提取第二列的PID值

方法3:用pkill直接终止进程(无需手动提取PID)

如果你的需求只是终止目标进程,直接用pkill一步完成:

sudo pkill -9 -f "pisokjo.py"

-f参数确保匹配整个命令行,精准定位到运行pisokjo.py的进程。

内容的提问来源于stack exchange,提问作者Gal_Zoli

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 16:48:11