我写一个脚本监视任何给定进程的CPU和MEM。 为此,我需要在这个过程中的名义发送的命令行参数进行监控。 例如。
./monitorscript <pname>
我需要得到进程的PID的脚本,这样我可以使用ps -p <pid>
里面。
我要如何赋予其进程名称的进程的PID?
据我所知,有可能是在同一个名称的多个进程。 我只是想获得第一个进程的是名单。
我写一个脚本监视任何给定进程的CPU和MEM。 为此,我需要在这个过程中的名义发送的命令行参数进行监控。 例如。
./monitorscript <pname>
我需要得到进程的PID的脚本,这样我可以使用ps -p <pid>
里面。
我要如何赋予其进程名称的进程的PID?
据我所知,有可能是在同一个名称的多个进程。 我只是想获得第一个进程的是名单。
上面的答案大多是正确的,只是需要一些调整在Mac OSX上的不同的参数。
ps -A | grep -m1 firefox | awk '{print $1}'
您可以安装pidof
用自制 :
brew install pidof
pidof <process_name>
您可以在下面的例子中使用pgrep命令状
$ pgrep Keychain\ Access
44186
这是我能找到的,没有工作在最短的命令:
ps -ax | awk '/[t]he_app_name/{print $1}'
把周围的第一个字母括号从发现awk的过程本身AWK停止。
试试这个:
echo "$(ps -ceo pid=,comm= | awk '/firefox/ { print $1; exit }')"
的ps
命令产生输出这样的,在第一列中的PID和可执行文件的名称(仅)在第二列中:
bookworm% ps -ceo pid=,comm=
1 launchd
10 kextd
11 UserEventAgent
12 mDNSResponder
13 opendirectoryd
14 notifyd
15 configd
...其中awk
过程中,打印的第一列(PID)和第一匹配后退出。
该解决方案的进程名的匹配更严格:
ps -Ac -o pid,comm | awk '/^ *[0-9]+ Dropbox$/ {print $1}'
该解决方案具有以下优点:
tail -f ~/Dropbox
~/Dropbox/foo.sh
~/DropboxUID.sh
你可以试试这个
pid=$(ps -o pid=,comm= | grep -m1 $procname | cut -d' ' -f1)
你为什么不超过PID运行TOP和使用的选项由其他指标进行排序,其他的? 就像,最高使用PID从CPU / MEM?
顶部-o CPU <---排序由CPU使用的所有进程