linux 如何查看某个程序的进程号

linux 如何查看某个程序的进程号,第1张

方法一:PS

在ps命令中,“-T”选项可以开启线程查看。下面的命令列出了由进程号为的进程创建的所有线程。

$ ps -T -p

“SID”栏表示线程ID,而“CMD”栏则显示了线程名称。

方法二: Top

top命令可以实时显示各个线程情况。要在top输出中开启线程查看,请调用top命令的“-H”选项,该选项会列出所有Linux线程。在top运行时,你也可以通过按“H”键将线程查看模式切换为开或关。

$ top -H

要让top输出某个特定进程并检查该进程内运行的线程状况:

$ top -H -p

通过  取系统进程列表() 命令取出所有进程,然后在其中找出你想获取的进程名,就可以取出相应的进程ID。刚刚写了一个   取进程名+取进程ID  的小程序,纯手打,源码很简单,就几行,应该很好理解,如果还有不明白的可以追问,我在线解决,谢谢。

不少进程可以在任务管理器的进程选项卡中结束,但有时会被拒绝结束,这时你可以从“控制面板”/“管理工具”/“服务”中找到该进程对应的服务将其结束。注意不要随意结束系统进程,比如lsassexe进程、servicesexe进程、svchostexe进程、winlogonexe进程等。另外你可在任务管理器的“查看”菜单中选择“选择列”,选择PID(进程标识符),查看出你要结束的进程的PID值,然后在命令提示符中输入taskkill/PIDPID值/F。

#include <stdioh>

#include <stdlibh>

#include <unistdh>

using namespace std;

pid_t getProcessPidByName(const char proc_name)

{

     FILE fp;

     char buf[100];

     char cmd[200] = {'\0'};

     pid_t pid = -1;

     sprintf(cmd, "pidof %s", proc_name);

     if((fp = popen(cmd, "r")) != NULL)

     {

         if(fgets(buf, 255, fp) != NULL)

         {

             pid = atoi(buf);

         }

     }

     printf("pid = %d \n", pid);

     pclose(fp);

     return pid;

}

int main(int argc, char argv)

{

    if(argc != 2)

    {

        printf("Invalid input! \n");

        return -1;

    }

    char process_name = argv[1];

    pid_t process_pid = getProcessIDByName((const char)process_name);

    return 0;

}

package test;

import javaioBufferedReader;

import javaioFile;

import javaioFileWriter;

import javaioIOException;

import javaioInputStream;

import javaioInputStreamReader;

import javaioPrintWriter;

public class GetPid {

private static final String PNAME = "QQ";

public static void main(String[] args)

throws IOException {

Systemoutprintln("包含关键字 "+PNAME+" 的进程有:");

Systemoutprintln();

String path = SystemgetProperty("userdir");

final File createFileName = new File(path + "\\mytempscriptvbe");

if(createFileNameexists()createFileNamedelete():createFileNamecreateNewFile()){}

final PrintWriter pw = new PrintWriter(new FileWriter(createFileName,

true), true);

pwprintln("for each ps in getobject(\"winmgmts:\\\\\\root\\cimv2:win32_process\")instances_");

pwprintln("wscriptecho pshandle&vbtab&psname");

pwprintln("next");

pwclose();

final InputStream ii = RuntimegetRuntime()exec(

"cscript " + path + "\\mytempscriptvbe")getInputStream();

final InputStreamReader ir = new InputStreamReader(ii);

final BufferedReader br = new BufferedReader(ir);

String str = null;

String[] ss = null;

while ((str = brreadLine()) != null) {

if (strindexOf(PNAME)>0&&strendsWith("exe")) {

ss = strsplit("\\s");

for(int i=0;i<sslength;i+=2){

Systemoutprintln("");

Systemoutprintln("进程名:"+ss[i+1]+"\n进程ID:"+ss[i]);

}

}

}

Systemoutprintln("");

irclose();

iiclose();

brclose();

}

}

运行结果如下

包含关键字 QQ 的进程有:

进程名:QQexe

进程ID:3956

以上就是关于linux 如何查看某个程序的进程号全部的内容,包括:linux 如何查看某个程序的进程号、易语言如何获取指定进程的ID、如何获取Exe文件的进程ID等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/web/9282154.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-26
下一篇2023-04-26

发表评论

登录后才能评论

评论列表(0条)

    保存