htop을 사용하여 프로세스와 모든 하위 프로세스를 일시 중지하려면 어떻게 해야 합니까?

htop을 사용하여 프로세스와 모든 하위 프로세스를 일시 중지하려면 어떻게 해야 합니까?

나는 recoll파일을 색인화하는 데 사용하는데 부적절한 시간에 시작됩니다.

htopF5를 사용하여 보기를 트리 보기로 변경하고 프로세스 목록을 필터링하면 실행 중인 마스터 프로세스와 그 아래에 하위 프로세스가 표시됩니다 . 종료 옵션을 선택하기 위해 F9 키를 눌렀을 때 해당 SIGTERM옵션에 응답하지 않는 것 같아서 해당 옵션을 사용해야 합니다 SIGKILL.

부모 프로세스와 모든 자식 프로세스를 완전히 종료하는 대신 일시 중지하거나 중지할 수 있는 옵션이 있습니까?

답변1

버전 이후2.0.0(2016년에 출시됨c)를 누르면 프로세스와 해당 하위 항목에 태그를 지정할 수 있습니다 . 이는 에 표시된 내장 도움말에 언급되어 있습니다 h.

k그런 다음 를 눌러 태그 가 지정된 프로세스에 신호를 보낼 수 있습니다 . 선택할 수 있는 모든 신호 목록이 표시됩니다.

답변2

신호를 보내 SIGTSTP거나 다음 을 선택할 수 있습니다 SIGSTOP.

  • SIGTSTPCtrl: +를 누르면 신호가 전송됩니다 Z. 프로세스를 일시 중지하고 중지합니다. bg(백그라운드에서 재개) 또는 fg(포그라운드로 다시 가져오기 재개)를 사용하여 프로세스를 재개할 수 있습니다.

  • SIGSTOP: 단순히 프로세스를 중지합니다. 무시할 수 없고 차단할 수 없습니다. 신호를 보내는 경우에만 프로세스가 재개됩니다 SIGCONT.

답변3

을 눌러 Space프로세스에 태그를 지정할 수 있습니다. kill 명령은 태그가 지정된 모든 프로세스에 적용됩니다.

프로세스와 해당 하위 항목에 태그를 지정하는 쉬운 방법은 없지만 트리 보기( t)에는 프로세스와 하위 항목이 연속적으로 나열되어야 합니다.

리콜이 실행되는 방식에 따라 프로세스가 자체적으로 실행될 수 있습니다.프로세스 그룹. 그렇다면 kill -STOP -1234를 사용하여 모두 일시중단할 수 있습니다. 여기서 1234는 프로세스 그룹 ID입니다(일반적으로 그룹에 있는 초기 프로세스의 프로세스 ID일 필요는 없지만). 를 사용 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해당 프로세스를 일시 중단하세요.

관련 정보