실행 중인 프로세스와 파일 이름을 표시하시겠습니까?

실행 중인 프로세스와 파일 이름을 표시하시겠습니까?

저는 퍼티를 사용하여 내 사이트가 있는 Linux 서버에 연결하고 있습니다. 나는 뛸 수 있습니다

# ps aux | less

실행 중인 프로세스를 표시합니다. 하지만 어떤 파일이 이러한 프로세스를 실행하고 있는지 보여주고 싶습니까?

나도 시도했다

# ps aux | grep <pid>

하지만 다음 오류가 발생합니다.

-bash: syntax error near unexpected token `newline'

올바른 접근 방식은 무엇입니까?

답변1

ps aux | grep <pid>쉘 명령이 아닙니다. 이 표기법 <pid>은 일반적인 규칙이며 "PID를 거기에 놓는다"는 의미입니다. 예를 들어, PID가 1234인 경우 을 실행합니다 ps aux | grep 1234. 이는 그다지 유용한 명령이 아니므로 를 실행하는 것이 좋습니다 ps u 1234.

귀하의 질문은 명확하지 않습니다. "파일 이름 포함"은(는) 무슨 뜻인가요? 프로세스 1234에서 어떤 실행 파일이 실행되고 있는지 확인하려면 다음을 수행하세요.

ls -l /proc/1234/exe

프로세스가 어떤 파일을 열었는지 확인하려면 다음을 수행하세요.

ls -l /proc/1234/fd

매개변수가 포함된 전체 명령줄을 보려면 다음을 수행하세요.

tr '\0' '\n' </proc/1234/cmdline

명령을 사용하려는 경우 lsof -p1234프로세스에서 열린 모든 파일이 표시됩니다. ps uww 1234전체 명령줄을 포함하여 프로세스 1234에 대한 다양한 정보를 표시합니다.

답변2

다음 명령을 실행해 보십시오:

ps -ef

답변3

첫째, ps aux | grep <PID>특정 프로세스의 세부 정보를 표시하려는 경우 프로세스가 유용합니다.PID(프로세스 식별자)는 로 표시됩니다 <PID>.

예를 들어(또는 을 포함하는 행만 인쇄한다는 의미 ps aux | grep 'firefox\|USER'):firefoxUSER

ps aux | grep 'firefox\|USER'
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
terdon  9021  2.5 11.8 1950888 970832 ?      Sl   Apr03 108:41 /opt/firefox/firefox

따라서 내 인스턴스의 PID는 firefox9021입니다. 따라서 실행하려는 명령을 사용하려면 다음 <PID>으로 바꾸십시오 9021.

ps aux | grep 9021
terdon  9021  2.5 11.5 1948776 942640 ?      Sl   Apr03 109:03 /opt/firefox/firefox

이제 "이 프로세스를 실행 중인 파일 표시"가 무슨 뜻인지 잘 모르겠습니다. 이러한 프로세스에서 어떤 파일을 사용하고 있는지 표시하려는 경우 ps aux이것이 한 가지 방법입니다. /usr/share/doc/nano/faq.html다음을 사용하여 파일을 열었다 고 가정해 보겠습니다 .

 firefox /usr/share/doc/nano/faq.html 

firefox다음을 사용하여 어떤 파일이 열려 있는지 확인할 수 있습니다 ps.

ps aux | grep firefox
terdon   31763 18.7  1.0 682916 84352 pts/10   Sl+  17:10   0:02 firefox /usr/share/doc/nano/faq.html

열린 파일은 Firefox에 전달된 매개변수 중 하나로 나타납니다. PID는 서로 달랐습니다 31763. 9021이는 실행 중인 각 프로그램마다 고유한 PID가 있기 때문입니다.


또 다른 유용한 명령은 입니다 top. -c스위치를 사용하여 실행하면 명령에 전달된 인수가 표시되고 -u <your user>사용자 이름으로 시작된 프로세스만 표시됩니다( <your user>실제 사용자 이름으로 대체됨).

top -c -u terdon

이것은 내 로컬 컴퓨터의 출력입니다(사용자는 terdon두 개의 프로세스만 실행 중입니다).

top - 17:14:41 up 3 days, 49 min, 14 users,  load average: 0.48, 0.54, 0.55
Tasks: 228 total,   1 running, 226 sleeping,   0 stopped,   1 zombie
%Cpu(s):  7.1 us,  5.5 sy,  0.0 ni, 86.5 id,  0.0 wa,  0.0 hi,  0.9 si,  0.0 st
KiB Mem:   8187940 total,  8007220 used,   180720 free,   349264 buffers
KiB Swap:  8191996 total,     5556 used,  8186440 free,  4173004 cached

  PID USER      PR  NI  VIRT  RES  SHR S  %CPU %MEM    TIME+  COMMAND                                                       
31573 terdon    20   0 24900 5576 1684 S   0.0  0.1   0:00.20 bash                                                          
31763 terdon    20   0  666m  77m  28m S   0.0  1.0   0:02.39 firefox /usr/share/doc/nano/faq.html                          

표시되는 정보에 대한 설명은 top다음을 참조하세요.내 대답SU에 관한 질문입니다.

답변4

셸 아래의 일부 문자는 < > ? ;

grep PID는 PID가 프로세스 ID이기 때문에 쓸모가 없으며 grep은 다음과 같은 숫자를 찾습니다.

관련 정보