1. 通过进程名找到进程号
my_pid=`ps gaux |grep "kdvmt.linux"| grep -v grep |awk '{print $2}'`
2.如何获得每个进程中所有线程的信息
所有的信息都在/proc/$my_pid/task中,其中stat尤为重要,可以通过man proc查看具体的信息。
还有查看进程的几个重要命令
ps -eLf
ps -aux
ps gaux
ps xH
另外还有awk和cut实现字符串截取的内容也很重要
下面是获取kdvmt.linux进程中每个线程的线程号、线程名、线程优先级的完整例子
#!/bin/sh
my_pid=`ps gaux |grep "kdvmt.linux"| grep -v grep |awk '{print $2}'`
cd /proc/$my_pid/task;
myfunc()
{
echo "thread_id thread_name priority nice" >> /usr/log.log
for name in `ls`
do
if [ -d "$name" ];then
cd "$name";
cat stat | cut -d ' ' -f 1-3,18,19 >> /usr/log.log;
cd ..
fi
done
}
myfunc