ps를 사용하여 포그라운드 프로세스 보기

ps를 사용하여 포그라운드 프로세스 보기

ps를 사용하여 백그라운드 프로세스를 볼 수 있습니다. 하지만 포그라운드 프로세스를 볼 수 있는 방법이 있나요? 예를 들어,

$nohup 프로세스1 &

그 다음에

ps -ef | grep "프로세스 1"

실행 중인 프로세스 "process1"이 표시됩니다. 그러나 위 명령은 실행된 포그라운드 프로세스를 표시하지 않습니다. 예를 들어,

$프로세스2

답변1

기본적으로 동일한 터미널 창에서 시작된 프로세스와 같이 ps호출이 이루어진 터미널의 프로세스를 표시하므로 혼란스러울 수 있습니다 .ps

ps -u $LOGNAME터미널 이름을 알고 있다면 또는 를 시도해 보세요 ps -t $THETTYNAME1,$THETTYNAME2. (터미널 이름은 일반적으로 "ttyN" 또는 "pts/N"과 같습니다).

답변2

이상하게도 ps 명령을 사용하면 포그라운드와 백그라운드 모두에서 모든 활성 프로세스의 상태를 모니터링할 수 있습니다.

예를 들어 첫 번째 셸에서 다음 프로세스를 시작합니다.

$ startNetworkServer 
Security manager installed using the Basic server security policy.
Apache Derby Network Server - 10.3.2.1 - (599110) started and ready to accept connections on port 1527 at 2010-06-18 14:14:33.277 GMT 

다른 쉘에서:

$ ps aux  | grep NetworkServer | grep -v grep
pascal    5928  0.3  1.4 661492 29216 pts/0    Sl+  16:14   0:03 /usr/lib/jvm/java-6-sun/bin/java -classpath /usr/share/javadb/lib/derby.jar:/usr/share/javadb/lib/derbynet.jar:/usr/share/javadb/lib/derbytools.jar:/usr/share/javadb/lib/derbyclient.jar org.apache.derby.drda.NetworkServerControl start

프로세스가 예상대로 나열됩니다(그리고 +포그라운드 프로세스 그룹에 있음을 보여줍니다).

답변3

질문:

"포그라운드 프로세스를 볼 수 있는 방법이 있나요?"문제는 계속해서 ps -ef포그라운드에서 실행 중인 프로세스가 표시되지 않는다고 주장합니다.

답변:

, 방법이 있습니다. 반품:ps -ef 하다포그라운드에서 실행 중인 프로세스 표시 -하지만 그것은 표시되지 않습니다상태절차상의. 이는 man ps문서( )에 설명되어 있으며 간단한 실험을 통해 확인할 수 있습니다. 다음 예를 고려하십시오.

터미널에서 다음을 실행합니다.

ping 8.8.8.8 > /dev/null

다른 터미널에서:

ps -ef | grep ping | grep -v grep
seamus        1161   974  0 23:20 pts/1    00:00:00 ping 8.8.8.8

메모가 ps -ef제공되지 않음상태출력에 정보가 포함됩니다. 그러나 man ps설명상태정보사용 가능-o키워드와 함께 사용되는 매개변수 stat:

ps -eo pid,stat,command | grep ping | grep -v grep
 1161 S+   ping 8.8.8.8

이는 우리에게 다음을 알려줍니다.

  • 프로세스 PID는 1161키워드에 의해 결정됩니다pid
  • 프로세스상태S+키워드를 통해stat
  • 키워드 command표시가 ping 8.8.8.8프로세스를 생성합니다.

이것상태S+디코딩된man ps제목 아래에 PROCESS STATE CODE. 이는 우리에게 다음을 알려줍니다.

S 중단 가능한 절전(이벤트가 완료될 때까지 대기)
+ 포그라운드의 프로세스 그룹

양자전기역학

ps -ef우리는 PID를 사용한 프로세스가 나열 1161되고 ps -eo pid,stat,command공개되는 것을 보았습니다 .상태PID 1161전망프로세스.


참고 1: 핵심 단어-o인수는 제목 아래에 설명되어 있습니다. 키워드가 두 글자를 생성하는 과정은 여기에 설명되어 있습니다.man psSTANDARD FORMAT SPECIFIERSstat상태, 키워드는 state하나의 문자만 생성 하지만상태.

노트 2:이는 내 Debian 기반 시스템(버전으로 보고됨 ps from procps-ng 3.3.15) 및 macOS 10.15(BSD 버전에서 파생됨 ps)에서 작동합니다.

관련 정보