FreeBSD - 如何使用 grep 排除某些模式?

rGA*_*145 3 freebsd grep

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 中我应该怎么做?

Xen*_*050 5

快速回答:更改模式使其不显示在 ps 中,但仍然匹配,例如使用方括号搜索

/usr/local/sbin/asteris[k]
Run Code Online (Sandbox Code Playgroud)

也许更好的答案:使用类似pgrep“根据名称和其他属性查找或发送进程信号”之类的程序