Pra*_*dep 40 macos bash shell pid process
我正在编写一个脚本来监视任何给定进程的CPU和MEM.为此,我需要将要监视的进程的名称作为命令行参数发送.例如.
./monitorscript <pname>
Run Code Online (Sandbox Code Playgroud)
我需要在脚本中获取进程的pid,以便我可以使用ps -p <pid>
内部.
如何根据流程名称获取流程的pid?
我知道同名中可能有多个进程.我只想从该列表中获取第一个进程.
小智 70
上面的答案大多是正确的,只需要对Mac OSX中的不同参数进行一些调整.
ps -A | grep [f]irefox | awk '{print $1}'
Run Code Online (Sandbox Code Playgroud)
小智 35
你可以pidof
用Homebrew安装:
brew install pidof
pidof <process_name>
Run Code Online (Sandbox Code Playgroud)
ber*_*kie 33
您可以使用pgrep命令,如以下示例所示
$ pgrep Keychain\ Access
44186
Run Code Online (Sandbox Code Playgroud)
此解决方案更严格地匹配进程名称:
ps -Ac -o pid,comm | awk '/^ *[0-9]+ Dropbox$/ {print $1}'
Run Code Online (Sandbox Code Playgroud)
该解决方案具有以下优点:
tail -f ~/Dropbox
~/Dropbox/foo.sh
~/DropboxUID.sh
这是我能找到的最短的命令:
ps -ax | awk '/[t]he_app_name/{print $1}'
Run Code Online (Sandbox Code Playgroud)
将括号放在第一个字母的周围会阻止awk查找awk进程本身。
归档时间: |
|
查看次数: |
91246 次 |
最近记录: |