ps -a 실행 중인 프로세스를 찾을 수 없습니다.

ps -a 실행 중인 프로세스를 찾을 수 없습니다.

typora라는 프로세스를 찾을 수 있어요htop

여기에 이미지 설명을 입력하세요.

하지만 ps나 pstree에서는 추적할 수 없습니다.

$ ps -a | grep -i typora
 9696 ttys003    0:00.01 grep -i typora

$ pstree | grep -i typora 
 |     |--- 09713 me grep -i typora
 |--= 00258 me /Applications/Typora.app/Contents/MacOS/Typora -psn_0_40970

ps 명령에서 어떻게 찾나요?

답변1

psmacOS 매뉴얼 에서 (필자의 강조):

-a

자신의 프로세스뿐만 아니라 다른 사용자 프로세스에 대한 정보도 표시합니다. -x이 옵션도 지정하지 않는 한 제어 터미널이 없는 프로세스는 건너뜁니다 .

제어 터미널 없이 macOS에서 실행되는 애플리케이션(예: 창으로 표시된 Finder 애플리케이션)은 나열되지 않습니다 ps -a. 이를 나열하려면 를 사용하십시오 ps -ax.

-A또는 다음과 같이 or 옵션을 사용할 수 있습니다 -e.

-A

제어 터미널이 없는 프로세스를 포함하여 다른 사용자 프로세스에 대한 정보를 표시합니다.

-e

같은 -A.

특정 프로세스에 대한 정보를 찾고 있는 경우이름, 다음 사용을 고려해보세요 pgrep:

pgrep Typora

( 를 사용하지 않는 한 대소문자가 중요하다는 점에 유의하세요 pgrep -i)

특정 이름으로 프로세스에 신호를 보내려면 tryout pkill대신 사용하세요 .grepps

pgrep및 에 대한 설명서를 참조하세요 pkill.

또는 이것이 질문의 일부가 아니더라도 특정 이름을 가진 프로세스가 포함된 프로세스 트리의 분기만 표시하도록 선택할 pstree수 있습니다 .-s

답변2

짧은 대답은 다음과 같습니다. ps스위치 에 추가하세요 H. 남자에게서: H Show threads as if they were processes.

긴 대답이 내려졌습니다.

나는 이 질문이 5년 전이라는 것을 알고 있으며 질문에 대한 답변이 완료되었으며 답변이 수락되었습니다. 그러나 한편으로는 그다지 만족스럽지 않고 다른 한편으로는 변형을 가져오겠습니다. 이것이 도움이 되기를 바랍니다. .

htopt대화형 모드에서 누르거나 처음에 " " 옵션을 통해 쉽게 검사할 수 있는 프로세스와 해당 스레드를 표시합니다 -t --tree Show the tree view.

typora지금은 무료가 아니기 때문에 예를 들어 command 를 사용했습니다 mate-terminal. 첫 번째 호출은 프로세스를 생성하고 후속 호출은 첫 번째 호출에서 스레드를 생성합니다. 그래서, 단순함 뒤에 htop우리는

여기에 이미지 설명을 입력하세요.

누른 후t

여기에 이미지 설명을 입력하세요.

예를 들어, command 를 사용하면 ps axu스레드가 아닌 첫 번째 프로세스만 표시되지만 스레드는 아래에 나열됩니다 /proc/<pid>/task/.

여기에 이미지 설명을 입력하세요.

스레드를 보려면 HBSD 스타일에서 스위치를 사용하여 ps axuH프로세스와 해당 스레드가 표시되고 이제 우리가 본 것과 동일한 그림을 볼 수 있습니다.htop

여기에 이미지 설명을 입력하세요.

설명된 동작은 불필요하고 내재된 mate-terminal것이며 제가 예상했던 대로입니다 typora. 예를 들어, konsole상자가 호출될 때마다 새 프로세스는 에서 고려되고 htop따라서 에서 고려됩니다 ps axu.

답변은 데비안 11.6에서 테스트되었습니다.

관련 정보