По какой-то странной причине приложение под названием «HP Alerts» за ночь наполнило мой экран окнами уведомлений, сообщающими, что в одном из моих струйных картриджей мало чернил. Теперь я отключил эти уведомления, но хотел бы знать, есть ли какой-нибудь способ закрыть все эти окна уведомлений с помощью команды терминала?

РЕДАКТИРОВАТЬ: я в конечном итоге избавился от окон, создав действие Automator - повторение 100 раз, которое продолжает закрывать окна «HP Alerts», пока не останется ни одного. Мне все еще интересно узнать, можно ли это сделать без зацикливания в «Терминале».

1 ответ1

0

В течение многих лет у меня был не слишком хороший опыт работы с драйвером принтера HP, поэтому, хотя я не удивлен этим, я не использую их драйверы продукта. Тем не менее, вы можете использовать ps для получения PID приложения, использовать awk или cut для получения PID, а затем kill PID. Вот пример использования Safari.

Сначала получите PID для Safari. Второй grep исключает grep 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 с таким именем не виден.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .