FreeBSD 11.0-RELEASE-p1 FreeBSD 11.0-RELEASE-p1 #0 root@releng2.nyi.freebsd.org:/usr/obj/usr/src/sys/GENERIC amd64
grep (GNU grep) 2.5.1-FreeBSD
你好。我想检查 Asterisk 进程的可用性,所以我使用这个命令:
ps aux | grep /usr/local/sbin/asterisk
Run Code Online (Sandbox Code Playgroud)
但是输出不相关,因为它包含两个字符串(第一个用于 Asterisk 进程,第二个用于 grep 进程):
asterisk 44044 9.8 2.1 866912 133628 - Is 14:35 121:27.41 /usr/local/sbin/asterisk -n -F -U asterisk
root 44242 0.0 0.0 14796 2484 4 S+ 09:50 0:00.27 grep /usr/local/sbin/asterisk
Run Code Online (Sandbox Code Playgroud)
所以我想排除“grep”字符串。在 Linux 中我可以使用标志 -v,但是在 FreeBSD 中我应该怎么做?
快速回答:更改模式使其不显示在 ps 中,但仍然匹配,例如使用方括号搜索
/usr/local/sbin/asteris[k]
Run Code Online (Sandbox Code Playgroud)
也许更好的答案:使用类似pgrep“根据名称和其他属性查找或发送进程信号”之类的程序