Как xkill приложение по его идентификатору?

Я рекомендую следовать руководству Quickstart для Nagios, которое не использует apt-get, но загружает исходный код, компилируется и затем устанавливается.

Это обеспечит установку Nagios в / usr / local / nagios /

Я нахожу преимущество, которое Nagios установил в / usr / local / nagios /, когда я пытаюсь установить Nagios Service Check Acceptor, дополнение для Nagios.

1
задан 12 November 2012 в 00:19

4 ответа

Эквивалент xkill является функцией windowkill в xdotool. Если у вас нет xdotool, запустите

sudo apt-get install xdotool

С помощью этого инструмента вы действительно можете убить окно, используя опцию поиска, и указав его класс:

xdotool search --class gedit windowkill

Вы можете найти pid процесса с помощью getwindowpid, но достаточно указать имя класса окна (т.е. --class gedit). Инструмент неинтерактивен в том смысле, что вам не нужно нажимать на окно, чтобы убить его, как вам иногда нужно делать с xkill.

Подробнее о параметрах, доступных с помощью xdotool доступны с man xdotool и в файлах Ubuntu онлайн. В manpages хорошо объясняется, как xdotool можно включить в скрипт гораздо легче, чем xkill.

Итак, я думаю, что опция xdotool's windowkill - это то, что вы хотите, и она может быть более удобной, чем опция xkill.

Однако, если вы все еще хотите использовать xkill и загрузите его идентификатор ресурса окна, чтобы он закрывал окно без запроса, вы могли бы проанализировать вывод xwininfo, как в этом примере используя программу Meld:

xkill -id $(xwininfo -name Meld | awk -F ':*"*' '{print $3}')

Однако имя программы, отправленной на xwininfo, должно быть в соответствующем случае, поэтому запустите программу заранее, и в нашем примере здесь см. если это Meld или meld.

Я предпочитаю команду xdotool, указанную выше, так как дело не обязательно должно быть правильным: Meld или meld будут работать, поскольку вместо переключателя search --name используется регулярное выражение для соответствия заданной строкой и игнорирует случай.

2
ответ дан 25 May 2018 в 04:30
  • 1
    Спасибо за этот прекрасный ответ. Это именно то, чего я хотел. Я не знал, что xdotool существует, и я тоже предпочитаю :) Однако команда xkill, которую вы дали, будет очень удобной. – Hanynowsky 13 November 2012 в 03:48

вы можете использовать killall, который отправит TERMSIG (сигнал завершения) в указанное вами приложение. вы можете использовать killall со следующей командой

killall <id> 

, например, вы можете закрыть firefox с помощью

kilall firefox

, если по какой-то причине вы должны найти правильный идентификатор приложения / вы всегда можете использовать ps для просмотра всех запущенных процессов и их имен.

1
ответ дан 25 May 2018 в 04:30
  • 1
    Спасибо за ответ, но это не то, что я ищу. Killall убьет все процессы, связанные с приложением ресурса. Конечно; Я могу grep ресурс pid, используя: ps -A | grep gedit – Hanynowsky 12 November 2012 в 00:49
kill -9 <id>

обязательно уничтожит все, что связано с этим pid.

, чтобы найти pid, я использую

ps -u $USER -f | grep gedit

, после чего они могут быть включены в одну команду, если вам нужно часто делать это

1
ответ дан 25 May 2018 в 04:30

Используйте команду top для получения определенного идентификатора процесса. Запишите его и введите следующую команду, чтобы убить Process.

kill <process id>
0
ответ дан 25 May 2018 в 04:30
  • 1
    Спасибо за ответ. Ну, я знаю, как определить процесс и убить его. Это не проблема. В моем вопросе я указал, что мне нужно отделить запущенное приложение от X Server с помощью команды xkill. – Hanynowsky 13 November 2012 в 03:43

Другие вопросы по тегам:

Похожие вопросы: