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

如何通过SSH在cmd/PowerShell中获取运行中命令的PID

操作实现方案

1. 本地执行命令同时获取当前进程PID

对应你要实现的类似echo $$; python my_script.py > out.log的功能,不同终端环境的写法如下:

  • Linux Shell
    直接使用内置变量$$获取当前Shell进程PID,写法和你示例一致:
    echo $$; python my_script.py > out.log
    
  • Windows CMD
    CMD无内置PID变量,可调用PowerShell接口获取,单条命令写法如下:
    for /f %i in ('powershell -Command "$pid"') do @set CURR_PID=%i & echo %CURR_PID% & python my_script.py > out.log
    
    如果写在.bat批处理脚本中,需要把命令中的%i改为%%i
  • PowerShell
    直接使用内置变量$PID获取当前会话进程PID:
    $PID
    python my_script.py > out.log
    

2. 通过SSH查询远程正在运行命令对应的PID

首先需要确保目标主机已开启SSH服务,你可以直接通过SSH执行远程查询命令,无需手动登录后操作:

  • 远程主机为Linux系统
    可以用pgrep或者ps过滤进程,示例查询命令行包含python my_script.py的进程PID:
    # 写法1:使用pgrep(更简洁)
    ssh 你的用户名@目标主机地址 "pgrep -f 'python my_script.py'"
    
    # 写法2:使用ps+grep过滤
    ssh 你的用户名@目标主机地址 "ps aux | grep '[p]ython my_script.py' | awk '{print \$2}'"
    
    输出结果就是对应进程的PID,多个匹配结果会分行输出。
  • 远程主机为Windows系统
    调用PowerShell的进程查询接口过滤:
    ssh 你的用户名@目标主机地址 "powershell -Command \"Get-Process | Where-Object {\$_.CommandLine -like '*python my_script.py*'} | Select-Object -ExpandProperty Id\""
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 22:36:04