
方法一: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等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)