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 ps
STANDARD FORMAT SPECIFIERS
stat
상태, 키워드는 state
하나의 문자만 생성 하지만상태.
노트 2:이는 내 Debian 기반 시스템(버전으로 보고됨 ps from procps-ng 3.3.15
) 및 macOS 10.15(BSD 버전에서 파생됨 ps
)에서 작동합니다.