Como o htop pode ser usado para suspender um processo e todos os seus processos filhos?

Como o htop pode ser usado para suspender um processo e todos os seus processos filhos?

Eu uso recollpara indexar arquivos e isso acontece em momentos inoportunos.

Quando eu uso htoppara alterar a visualização para uma visualização em árvore usando F5 e filtrar a lista de processos, vejo um processo mestre em execução e processos filhos abaixo dele. Quando pressiono F9 para escolher uma opção de encerramento, ele parece não responder à SIGTERMopção, então tenho que usar a SIGKILLopção.

Existe uma opção para pausar ou parar o processo pai e todos os seus filhos, em vez de eliminá-lo imediatamente?

Responder1

Desde a versão2.0.0(lançado em 2016), você pode pressionar cpara marcar o processo e seus filhos. Isso é mencionado na ajuda integrada mostrada em h.

Depois você pode pressionar kpara enviar um sinal aos processos marcados; você verá uma lista de todos os sinais possíveis para escolher.

Responder2

Você pode optar por enviar o sinal SIGTSTPou SIGSTOP:

  • SIGTSTP: O sinal é enviado quando você pressiona Ctrl+ Z. Ele irá suspender e parar o processo, você pode retomá-lo usando bg(retoma em segundo plano) ou fg(retoma trazendo-o de volta para primeiro plano).

  • SIGSTOP: Simplesmente interrompe o processo. Não pode ser ignorado, não pode ser bloqueado. O processo só será retomado se você enviar um SIGCONTsinal.

Responder3

Você pode pressionar Spacepara marcar um processo. O comando kill se aplica a todos os processos marcados.

Não há uma maneira fácil de marcar um processo e seus filhos, mas a visualização em árvore ( t) deve listá-los de forma contígua.

Dependendo de como a recuperação é executada, os processos podem estar em sua própriagrupo de processos. Se estiverem, você pode usar kill -STOP -1234para suspender todos eles, onde 1234 é o ID do grupo de processos (geralmente, mas não necessariamente, o ID do processo inicial no grupo). Você pode verificar com ps -o pid,ppid,pgid,comm -C recoll, ps -o pid,ppid,pgid,comm ww | grep -v recollpara ver se há algum outro processo no grupo de processos. Htop não possui interface para processar grupos.

Se todos os processos forem chamados recoll, um método mais fácil é filtrar os processos por nome. No htop, use o comando filter para poder marcar facilmente os processos que deseja eliminar. Na linha de comando, execute ps $(pgrep recoll)para listar os processos correspondentes. Se você estiver satisfeito com a lista, corra pkill -STOP recollpara suspender esses processos.

informação relacionada