当前位置: 技术问答>linux和unix
怎么能得到一个给定进程(已知进程ID)的一些系统参数,发言就给分!
来源: 互联网 发布时间:2015-05-30
本文导语: 已知一个进程ID(如1300),通过它我想得到该进程的以下参数 1、执行用户 2、运行该程序的路径 3、运行的参数 4、CPU占有率 5、内存占有率 6、程序运行的时间 7、程序的子进程和线程数量 | 楼主你直接...
已知一个进程ID(如1300),通过它我想得到该进程的以下参数
1、执行用户
2、运行该程序的路径
3、运行的参数
4、CPU占有率
5、内存占有率
6、程序运行的时间
7、程序的子进程和线程数量
1、执行用户
2、运行该程序的路径
3、运行的参数
4、CPU占有率
5、内存占有率
6、程序运行的时间
7、程序的子进程和线程数量
|
楼主你直接看ps的源码吧。
|
你是想通过程序得到吗?
==================================
很多UNIX系统提供了一个选择项以进行进程计事务处理。当取了这种选择后,内核就会写一个会计记录,典形的会计记录是32字节长的二进制数据,包括命令名,所使用的CPU时间总量,用户ID,和组ID,起动时间等,
会计记录的结构体在中
==================================
很多UNIX系统提供了一个选择项以进行进程计事务处理。当取了这种选择后,内核就会写一个会计记录,典形的会计记录是32字节长的二进制数据,包括命令名,所使用的CPU时间总量,用户ID,和组ID,起动时间等,
会计记录的结构体在中
|
进程控制块,扩充进程控制块
|
看/PROC/1300目录,有你想要的部分信息,看status文件,里边内容比较多
|
会计结构体如下:
typedef u_short comp_t /*3-bit base 8 exponent; 13bit fraction */
struct acct
{
char ac_flag; /* flag*/
char ac_stat; /* termination status */
uid_t ac_uid ; /* real user ID */
uid_t ac_gid ; /* real group ID*/
dev_t ac_tty ; /* controlling terminal */
time_t ac_btime; /* starting calendar time */
comp_t ac_utime; /* user cpu time */
......... /* 其他的你就自己去看看吧,太多了,难写*/
};
在这里面你可以找到你想要的信息
good luck
typedef u_short comp_t /*3-bit base 8 exponent; 13bit fraction */
struct acct
{
char ac_flag; /* flag*/
char ac_stat; /* termination status */
uid_t ac_uid ; /* real user ID */
uid_t ac_gid ; /* real group ID*/
dev_t ac_tty ; /* controlling terminal */
time_t ac_btime; /* starting calendar time */
comp_t ac_utime; /* user cpu time */
......... /* 其他的你就自己去看看吧,太多了,难写*/
};
在这里面你可以找到你想要的信息
good luck