序号 列名 含义
A PID 进程id
B PPID 父进程id
C RUSER Real user name
D UID 进程所有者的用户id
E USER 进程所有者的用户名
F GROUP 进程所有者的组名
G TTY 启动进程的终端名。不是从终端启动的进程则显示为
H PR 优先级
I NI nice值。负值表示高优先级,正值表示低优先级
J P 最后使用的CPU,仅在多CPU环境下有意义
K %CPU 上次更新到现在的CPU时间占用百分比
L TIME 进程使用的CPU时间总计,单位秒
M TIME+ 进程使用的CPU时间总计,单位1/100秒
N %MEM 进程使用的物理内存百分比
O VIRT 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
P SWAP 进程使用的虚拟内存中,被换出的大小,单位kb。
Q RES 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
R CODE 可执行代码占用的物理内存大小,单位kb
S DATA 可执行代码以外的部分(数据段+栈)占用的物理内存大小,单位kb
T SHR 共享内存大小,单位kb
U nFLT 页面错误次数
V nDRT 最后一次写入到现在,被修改过的页面数。
W S 进程状态。
D=不可中断的睡眠状态
R=运行
S=睡眠
T=跟踪/停止
Z=僵尸进程
X COMMAND 命令名/命令行
Y WCHAN 若该进程在睡眠,则显示睡眠中的系统函数名
Z Flags 任务标志,参考 schedh
进程号也就是UNIX类OS中的,Process ID
可是Process ID的概念只有在UNIX类的 *** 作系统中才有,Java作为一种多平台的程序语言,在JDK的接口中并不提供“进程ID”(Process ID)这种OS独有的概念。
如果要结束程序,可以使用Systemexit()
如果非要得到自己的Process ID,唯一的方法就是在shell取得Process ID,然后Java在通过某种方式取得相应的Process ID。
//获取对应进程名的ID
DWORD GetSpecifiedProcessId(const char pszProcessName)
{
DWORD id;
//获得系统快照句柄 (通俗的讲, 就是得到当前的所有进程)
HANDLE hSnapShot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0) ;
PROCESSENTRY32 pInfo; //用于保存进程信息的一个数据结构
pInfodwSize = sizeof(pInfo);
//从快照中获取进程列表
Process32First(hSnapShot, &pInfo) ; //从第一个进程开始循环
do
{
//这里的 pszProcessName 为你的进程名称
if(strcmp(strlwr(_strdup(pInfoszExeFile)), pszProcessName) == 0)
{
id = pInfoth32ProcessID ;
break ;
}
}while(Process32Next(hSnapShot, &pInfo) != FALSE);
return id; //id 就是你要的进程PID 了
}
这个代码是我从网上复制过来的 但是注释是我给加的
以后别弄个0 分放这里 真想扁你
我想要知道运行中脚本子shell的进程id。我该如何在shell脚本中得到PID。
当我在执行shell脚本时,它会启动一个叫子shell的进程。作为主shell的子进程,子shell将shell脚本中的命令作为批处理运行(因此称为“批处理进程”)。
在某些情况下,你也许想要知道运行中的子shell的PID。这个PID信息可以在不同的情况下使用。比如,你可以使用shell脚本的PID在/tmp下创建一个唯一的临时文件。有时侯脚本需要检测所有运行的进程,它可以从进程列表中排除自身的子shell。
在bash中,子shell进程的PID存储在一个特殊的变量‘$$’中。这个变量只读,你不可以在脚本中修改它。比如:
#!/bin/bash
echo "PID of this script: $$"
上面的脚本会得到下面的输出:
PID of this script: 6583
除了$$, bash shell还会导出其他的只读变量。比如,PPID存储子shell父进程的ID(也就是主shell)。UID存储了执行这个脚本的当前用户ID。比如:
#!/bin/bash
echo "PID of this script: $$"
echo "PPID of this script: $PPID"
echo "UID of this script: $UID"
输出是:
PID of this script: 6686
PPID of this script: 4656
UID of this script: 1000
上面输出中,PID每次执行都会变化。这个因为每次运行都会创建一个新的shell。另一方面,PPID每次都会一样只要你在同一个shell中运行。
对于所有bash内置变量列表,参考man页。
$ man bash
select PSPID, sstatus, Ssid,Sserial#,Susername,Smachine,Sprogram,Sosuser,to_char(Slogon_time,'yyyy/mm/dd-hh24:mi:ss')
from v$process P,
v$session S
WHERE Paddr = Spaddr
AND saudsid = userenv('sessionid')
/
PSPID 是 *** 作系统的Process ID (UNIX)
Ssid 是Oracle的Session ID,
以上SQL只查询当前Session 的信息,
以上就是关于在linux里,怎样得到另一个进程的进程号全部的内容,包括:在linux里,怎样得到另一个进程的进程号、Java如何得到当前进程ID号、VC 如何得到进程的ID号等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)