Сценарий Bash, чтобы найти и уничтожить процесс с определенными аргументами?

Существует xkb-переключатель, который описан таким образом:

xkb-переключатель является программой C++, которая позволяет запрашивать и изменять состояние макета XKB.

https://github.com/ierton/xkb-switch

Или, предложение следующего nozimica, Вы могли использовать:

setxkbmap -print | awk -F"+" '/xkb_symbols/ {print $2}'

От этого потока на Дуге платы Linux: https://bbs.archlinux.org/viewtopic.php? pid=539406

17
12.01.2011, 05:38
3 ответа

Выполненный pgrep -f "ssh.*-D" и посмотрите, возвращает ли это корректный идентификатор процесса. Если это делает, просто изменяется pgrep кому: pkill и сохраните те же опции и шаблон

Кроме того, Вы не должны использовать kill -9 иначе SIGKILL, если абсолютно необходимый, потому что программы не могут захватить SIGKILL для чистки после себя, прежде чем они выйдут. Я только использую kill -9 после первой попытки -1 -2 и -3.

26
27.01.2020, 19:47

Кроме того,

kill `pgrep -f "ssh.*-D"`
1
27.01.2020, 19:47
  • 1
    я думаю, что это эквивалентно pkill –  Michael Mrozek♦ 18.01.2011, 16:56

Можно усилить proc файловую систему для сбора информации. Например:

for proc in $(grep -irl "ssh.*-D" /proc/*/cmdline | grep -v "self"); do if [ -f $proc ]; then cat $proc && echo ""; fi; done

Это не прекрасно, Вы захотите более эксклюзивный regex (особенно, если Вы уничтожите процессы), но echo $proc | awk -F'/' '{ print $3 }' покажет Вам PID процесса (процессов).

0
27.01.2020, 19:47
  • 1
    OSX не имеет /proc. И уже существует устойчивый инструмент, чтобы сделать это там, названный pgrep (доступный исходно, по крайней мере, на Солярисе и Linux). –  Gilles 'SO- stop being evil' 12.01.2011, 23:20

Теги

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