如何查看某个进程的PID值

发布时间:2025-12-09 14:29:20 浏览次数:3

ctrl+alt+delete打开任务管理器—》查看-》选择列-》把PID勾上,这样就可以显示进程的PID号了,可以通过PID找到相应的进程。PID是进程运行时系统随机为进程分配的,并不代表专门的进程。

下面的命令就是显示进程名称为cmdexe的pid,不过这里有一个问题就是获得的pid是包括双引号的,这个你要自己再处理一下。

for

/f

"delims=,

tokens=1,2

skip=3"

%%a

in

('tasklist

/fo

csv

/fi

^"imagename

eq

cmdexe^"')

do

echo

%%b

方法1:通过任务管理器查看 按ctrl+alt+delete键调出任务栏管理器,打开进程依次----选择列---在d出的窗口中在PID前面打勾,带你及确定,在任务栏管理器的进程中 PID下面的就是该进程的进程号! 方法2:通过命令行查看开始--运行-cmd,打开命令行界面。输入tasklist查看使用参数/svc查看服务对应PID tasklist /svc 标签分类: 系统命令

如果我给NeMaC的参数不同,用上述指令会列出所有NeMaC命令执行的信息

但是我只想获取其中ture command为

还是得到了两个PID值,因为我同时使用了两个NeMaC命令(在不同命令窗口输入)

一条是NeMaC -c 30 -m 25000 -r rulessample 20210101 private rule1

一条是NeMaC -c 120 -m 25000 -r cs2rules 20210101 private rule2

谢谢,另外,NeMaC是NeTraMet这个分析流的工具的一个组件。学习中分成两个脚本执行。请教中,如何用两脚本,要是对应NeMaC有N个进程呢?那又该如何是好换一个思路吧,我如何能得到一个进程的唯一子进程的pid?:用

ps -C NeMaC -f | grep rule1 | awk '{print $2}'

我已经能拿到想要kill的进程的pid了,其值例如为:12815

但是当我执行如下shell文件时确出错了

#!/bin/bash#PATH=“$PATH”:/home/gwei/myCode#myNeMaC=——ps -C NeMaC -f | grep myNeMaC1 | awk '{print $2}'——

kill -9 $myNeMaC它显示出来的错误信息是

: arguments must be process or job IDskill: 12815

kill -9 $myNeMaC

也可以杀掉进程,但是把上面这些写入一个。sh文件再执行就出错了怎麼办呢?移植到RH9後提示的错误信息是:

[root@gxnunc0504 myCode]# /bin/bash /killNeMaC1sh

: no such pidsh: line 6: kill: 21820

kill -9 $myNeMaC

上面就是我杀掉进程的教本killNeMaC1,其中echo $myNeMaC确认只剩下一个PID了,可是为什麼到了kill -9 $myNeMaC就运行不下去了呢。相关 *** 作和结果如下:

版本 2

子程序 GetProcessPid, 整数型, 公开, 失败返回-1 进程名称取PID

参数 进程名, 文本型

局部变量 hSnapShot, 整数型

局部变量 End, 整数型

局部变量 buffer, PROCESSENTRY32

局部变量 pid, 整数型

pid = -1

hSnapShot = CreateToolhelp32Snapshot (2, 0)

bufferdwSize = 296

End = Process32First2 (hSnapShot, buffer)

判断循环首 (End ≠ 0)

    如果真 (到小写 (到文本 (bufferszExeFile)) = 到小写 (进程名))

        pid = bufferth32ProcessID

        跳出循环 ()

    如果真结束

    End = Process32Next2 (hSnapShot, buffer)

判断循环尾 ()

CloseHandle (hSnapShot)

返回 (pid)

DLL命令 CreateToolhelp32Snapshot, 整数型, "KERNEL32dll", "CreateToolhelp32Snapshot"

    参数 dwFlags, 整数型

    参数 th32ProcessID, 整数型

DLL命令 Process32First2, 整数型, "KERNEL32dll", "Process32First"

    参数 hSnapshot, 整数型

    参数 lppe, PROCESSENTRY32

DLL命令 Process32Next2, 整数型, "KERNEL32dll", "Process32Next"

    参数 hSnapshot, 整数型

    参数 lppe, PROCESSENTRY32

DLL命令 CloseHandle, 整数型, "KERNEL32dll", "CloseHandle"

    参数 hObject, 整数型

数据类型 PROCESSENTRY32

    成员 dwSize, 整数型

    成员 cntUsage, 整数型

    成员 th32ProcessID, 整数型

    成员 th32DefaultHeapID, 整数型

    成员 th32ModuleID, 整数型

    成员 cntThreads, 整数型

    成员 th32ParentProcessID, 整数型

    成员 pcPriClassBase, 整数型

    成员 dwFlags, 整数型

    成员 szExeFile, 字节型, , "256", 如果写成文本型,此处将会被放置一个指针,很显然会出错

#-- encoding:UTF-8 --

import os

import sys

import string 

import psutil

import re

def get_pid(name):

process_list = psutilget_process_list()

regex = "pid=(\d+),\sname=\'" + name + "\'"

print regex

pid = 0

for line in process_list:

    process_info = str(line)

    ini_regex = recompile(regex)

    result = ini_regexsearch(process_info)

    if result != None:

        pid = stringatoi(resultgroup(1))

        print resultgroup()

        break

def main(argv):<br>name = argv[1]<br>get_pid(name)

if __name__ == "__main__":

main(sysargv)

ps -p "1 2" 将会只选出pid是1和2的进程

ps -p 444 将会只选出pid是444的进程

也就是说,通过-p来指定pid即可,可以指定单个,也可以指定多个pid的列表,就看你的需求了

需要做网站?需要网络推广?欢迎咨询客户经理 13272073477