Передать все приостановленные процессы на уничтожение

Я также запускаю Arch linux, и после последнего обновления системы со мной случилось то же самое. Чтобы сузить причину, я закомментировал все строки в моем .xinitrc , а затем раскомментировал их одну за другой, каждый раз перезагружая X и проверяя, вызывает ли нажатие функциональных клавиш зависание. Вы можете попробовать это сделать; Я знаю, что это довольно общий совет, но в данном случае он сработал.

Для меня причина имеет какое-то отношение к dbus , хотя я не понял почему. Но отключение dbus определенно устраняет зависание.

2
23.10.2016, 01:44
1 ответ

Вы можете убить все экземпляры вашего скрипта, если знаете, как ваш процесс вызывается во время выполнения (в этом примере toplog.sh).

ps x | grep toplog.sh | grep -v grep | cut -d" " -f1 | xargs kill -9

ps x предоставляет вам список всех ваших процессов, из которых целевой процесс будет выделен. Второй grep просто убирает сам вызов grep из списка. В противном случае вы получите сообщение об ошибке (что на самом деле все еще не проблема, но некрасиво). cut -d "" -f1 разрезает каждую строку на несколько частей, разделенных пробелами, при этом * -f1 ** берет первую часть. xargs kill -9 убивает все pid, которые ранее были выброшены из цепочки команд.

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

#!/bin/bash
ps x | grep $1 | grep -v grep | cut -d" " -f1 | xargs kill -9

Затем сценарий вызывается с именем процессов, подлежащих уничтожению.

./kill.sh toplog.sh
0
27.01.2020, 21:59

Теги

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