В течение многих лет у меня был не слишком хороший опыт работы с драйвером принтера 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 с таким именем не виден.