有没有办法使用Perl或Python检索进程统计信息?

Fre*_*ory 2 python linux perl process

有没有办法一般使用Perl或Python检索进程统计信息?我们可以保持Linux特定.

有一些问题:我不会提前知道PID,但我可以从脚本本身运行有问题的过程.例如,我没有问题:

./myscript.pl some/process/I/want/to/get/stats/for

基本上,我想至少得到进程的内存消耗,但是我可以获得的信息越多越好(比如进程的运行时间,进程的平均CPU使用率等)

谢谢.

aks*_*aks 7

看一下Proc :: ProcessTable模块,该模块返回有关系统中进程的大量信息.调用"fields"方法以获取可从每个进程中提取的详细信息列表.

我最近发现了上面的模块,它刚刚取代了我在为Linux编写Perl kill程序时编写的Process模块​​.您可以在这里查看我的脚本.

可以轻松扩展它以从ps命令中提取更多信息.例如.' getbycmd '方法返回一个pid列表,其命令行调用与传递的参数匹配.然后,您可以通过调用' getdetail '来检索特定进程的详细信息,方法是将PID传递给它,就像这样,

my $psTable = Process->new();

# Get list of process owned by 'root'
for my $pid ( $psTable->getbyuser("root") ) {

    $psDetail = $psList->getdetail( $pid );
    # Do something with the psDetail..

}
Run Code Online (Sandbox Code Playgroud)