우분투 18.04를 사용하고 있습니다. 나는 시작할 수 있다는 것을 이미 알고 있습니다 htop
. 그런 다음 F4를 눌러 필터링하고 프로세스 이름 검색 쿼리(예: gphoto2
find gvfs-gphoto2-volume-monitor.service
)를 입력하거나 붙여넣은 다음 htop을 사용하여 표시된 프로세스를 필터링할 수 있습니다. 그러한 프로세스가 없으면 나중에 아무것도 표시되지 않습니다. 시작됨 , htop
나중에 표시됩니다.
htop
이제 명령줄에서 필터링을 시작 하겠습니다 . 예를 들면 다음과 같습니다.
htop --filter="gphoto2"
...F4를 누르고 터미널 UI에 입력하는 것과 정확히 동일한 동작을 얻습니다. 이는 명령이 세션에 통합된 경우 유용합니다 tmux
.
찾아봤지만 man htop
안타깝게도 그러한 명령줄/옵션을 볼 수 없습니다. 내가 본 가장 가까운 것은 -p
에서 언급했듯이필터와 일치하지 *않는* 프로세스만 표시하는 방법은 무엇입니까?:
그것은 마치
htop -p "$(pgrep -vfd, 'java|python')"
이는 htop이 실행되기 시작한 후에 시작된 프로세스를 고려하지 않는다는 명백한 단점이 있습니다.
그렇다면 시작 시 명령줄에서 프로세스 이름 필터링을 설정하여 새로 종료되거나 생성된 프로세스가 고려되도록( htop
터미널 UI에서 F4를 누르는 것처럼) htop
, 또는 top
기타 유사한 프로그램에 대해 설정할 수 있는 방법이 있습니까?
답변1
글쎄요, 지금은 2021년 3월 25일이고 저는 Arch에서 htop 버전 3.0.5를 실행하고 --filter test
있으며 모든 것이 잘 작동하고 있습니다 -F test
. 이것은 매뉴얼 페이지에 포함되어 있습니다:--filter="test"
-F="test"
COMMAND-LINE OPTIONS
[...]
-F --filter=FILTER
Filter processes by command
답변2
답변3
저도 이 옵션을 찾아보았으나 존재하지 않습니다. 나는 (귀하의 검색어를 사용하여) 다음과 같이 결정했습니다.
\# ps -aux |grep "[0-9] gphoto2"
답변4
귀하의 명령은 이전 버전에서는 작동하지 않으며 아마도 해당 명령이 있을 것입니다. 어쩌면 당신도 나처럼 레거시 시스템을 통해 길을 찾으려고 노력하고 있을 수도 있습니다. 허용된 답변은 이미 옳다고 말하고 있으며 이전 버전에만 문제가 있습니다. 예를 통해 입증되었습니다.
$ htop -v
htop 1.0.1 - (C) 2004-2011 Hisham Muhammad
Released under the GNU GPL.
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 12.04.5 LTS
Release: 12.04
Codename: precise
$ htop --filter test
htop: unrecognized option '--filter'
$ htop --filter "test"
htop: unrecognized option '--filter'
$ htop -F test
htop: invalid option -- 'F'
$ htop -F "test"
htop: invalid option -- 'F'
그리고 다른 답변 + 댓글에서:
$ htop -p $(pgrep -d',' -f "test")
htop: invalid option -- 'p'
$ top -p $(pgrep -d',' -f "test")
--works--