
Я использую recoll
индексацию файлов, и она срабатывает в самый неподходящий момент.
Когда я использую htop
F5 для изменения вида на древовидный вид и фильтрации списка процессов, я вижу запущенный главный процесс и дочерние процессы под ним. Когда я нажимаю F9, чтобы выбрать опцию завершения, он, похоже, не реагирует на опцию, SIGTERM
поэтому мне приходится использовать опцию SIGKILL
.
Есть ли возможность приостановить или остановить родительский процесс и все его дочерние процессы, а не завершать его полностью?
решение1
Начиная с версии2.0.0
(выпущен в 2016 году), вы можете нажать c
, чтобы пометить процесс и его потомков. Это упоминается во встроенной справке, которая отображается на h
.
Затем вы можете нажать , k
чтобы отправить сигнал отмеченным процессам; вам будет представлен список всех возможных сигналов для выбора.
решение2
Вы можете выбрать отправку сигнала SIGTSTP
или SIGSTOP
:
SIGTSTP
: Сигнал отправляется при нажатии Ctrl+ Z. Он приостановит и остановит процесс, вы можете возобновить его с помощьюbg
(возобновляет его в фоновом режиме) илиfg
(возобновляет его, возвращая его на передний план).SIGSTOP
: Просто останавливает процесс. Не может быть проигнорирован, не может быть заблокирован. Процесс возобновится только если вы пошлете емуSIGCONT
сигнал.
решение3
Вы можете нажать Space, чтобы пометить процесс. Команда kill применяется ко всем помеченным процессам.
Не существует простого способа пометить процесс и его дочерние процессы, но в древовидной структуре ( t) они должны быть перечислены последовательно.
В зависимости от того, как выполняется recoll, процессы могут находиться в своих собственныхгруппа процессов. Если они есть, то вы можете использовать kill -STOP -1234
для приостановки их всех, где 1234 — это идентификатор группы процессов (обычно, но не обязательно, идентификатор процесса начального процесса в группе). Вы можете проверить с помощью ps -o pid,ppid,pgid,comm -C recoll
, затем ps -o pid,ppid,pgid,comm ww | grep -v recoll
увидеть, есть ли другие процессы в группе процессов. Htop не имеет интерфейса для групп процессов.
Если все процессы называются recoll
, то более простой метод — отфильтровать процессы по имени. В htop используйте команду filter, тогда вы можете легко пометить процессы, которые хотите завершить. В командной строке запустите , ps $(pgrep recoll)
чтобы получить список соответствующих процессов. Если вас устраивает список, запустите , pkill -STOP recoll
чтобы приостановить эти процессы.