出于某种奇怪的原因,一款名为“HP Alerts”的应用程序一夜之间就在我的屏幕上充满了通知窗口,告诉我我的一个喷墨墨盒墨水不足。我现在已经禁用了这些通知,但想知道是否有办法用终端命令关闭所有这些通知窗口?
编辑:我最终通过创建 Automator 操作(循环 100 次)摆脱了这些窗口,该操作会不断关闭“HP Alerts”窗口,直到没有剩余窗口。我仍然很好奇是否可以在不使用“终端”循环的情况下完成此操作。
答案1
多年来,我使用 HP 打印机驱动程序的体验一直不太好,因此虽然我对此并不感到惊讶,但我不使用他们的产品驱动程序。话虽如此,您可能可以使用ps
来获取应用程序的 PID,使用awk
或cut
获取 PID,然后获取kill
PID。以下是使用 Safari 的示例。
首先获取 Safari 的 PID。第二个 grepgrep Safari
从结果中排除
$ ps -ef|grep Safari|grep -v grep
200000000 269 1 0 9:45AM ?? 0:18.99 /Applications/Safari.app/Contents/MacOS/Safari -psn_0_61455
200000000 560 1 0 9:46AM ?? 0:00.13 /usr/libexec/SafariNotificationAgent
200000000 602 1 0 9:46AM ?? 0:00.32 /System/Library/PrivateFrameworks/Safari.framework/Versions/A/XPCServices/com.apple.Safari.SearchHelper.xpc/Contents/MacOS/com.apple.Safari.SearchHelper
列包括ps -ef
UID、PID、PPID、C、STIME、TTY、TIME 和 CMD。我们感兴趣的是第二列,因此
$ ps -ef|grep Safari|grep -v grep|awk '{print $2}'
269
560
602
从这里,您可以使用xargs
将此信息传递给。请注意,这仅在您拥有该流程并且它们无需任何其他选项kill
即可响应终止时才有效。kill
$ ps -ef|grep Safari|grep -v grep|awk '{print $2}'|xargs kill
$ $ ps -ef|grep Safari|grep -v grep
-bash: $: command not found
第二条命令返回的错误消息表明 Safari 没有可见的具有该名称的 PID。