"ps" 또는 "ps -ef" 명령 출력에서 ​​프로세스가 백그라운드에서 실행 중인지 포그라운드에서 실행 중인지 어떻게 알 수 있나요?

"ps" 또는 "ps -ef" 명령 출력에서 ​​프로세스가 백그라운드에서 실행 중인지 포그라운드에서 실행 중인지 어떻게 알 수 있나요?

명령 또는 에서 프로세스가 백그라운드에서 실행 중인지, ps포그라운드 에서 실행 중인지 어떻게 알 수 있나요 ps -ef?

ps -ef를 입력하면 TTY라는 섹션이 있다는 것이 가장 먼저 떠올랐습니다 . TTY 목록을 보면 대부분이 ?.

내 생각이 맞는지 확인하고 싶어요! 그렇지 않은 경우 프로세스가 백그라운드에서 실행 중인지 포그라운드에서 실행 중인지 확인하는 방법을 알고 싶습니다.

추신: jobs여기에는 명령이 사용되지 않습니다.

답변1

stat필드+추가 포그라운드 프로세스 가 있습니다.:

ps -e -o pid,tty,stat,cmd

포그라운드 프로세스는 프로세스 그룹 ID( pgid) tpgid가 터미널( )의 포그라운드 프로세스인 프로세스입니다.

ps -e -o pid,pgid,tpgid,tty,cmd | awk '$2==$3'

TTY 목록을 보면 대부분 "?"(물음표)인데, 물음표가 백그라운드에서 실행되고 있다는 의미인지 궁금합니다.

아니요, 이는 tty(포그라운드 또는 백그라운드의 데몬 또는 커널 스레드)를 제어하지 않는다는 의미입니다. 다음 목록의 경우배경프로세스:

ps -e -o pid,pgid,tpgid,tty,cmd | awk '$3!=-1 && $2!=$3'

답변2

OP가 질문했습니다. "...프로세스가 백그라운드에서 실행 중인지 포그라운드에서 실행 중인지 어떻게 알 수 있나요?"

전경 및 배경 상태프로세스ps다음 과 같이 보고됨상태의 과정. man ps이것들을 나열해 보세요프로세스 상태제목 아래에 PROCESS STATE CODE.

ps -ef프로세스 상태는 보고되지 않지만 발견된 man ps섹션을 참조하면 매개변수를 사용하여 하나 이상의 출력을 지정할 수 있습니다 .OUTPUT FORMAT CONTROL-ops핵심 단어. 이것들핵심 단어STANDARD FORMAT SPECIFIERS섹션 에 나열된 , 남다른 인내심으로 사람들은 결국 나열된 s, statstate키워드를 찾을 것입니다. 하지만 이 세 가지를 참고하세요.핵심 단어제공될 것이다상태출력에는 다음과 같은 내용만 있습니다.stat 핵심 단어내가 줄게 multi-character process state! 키 포인트:ps부지런한 사용자에게 적합.

예를 들어 다음 ps명령은 출력됩니다.PID, 이것상태,게다가주문하다다음 명령을 사용하여 프로세스를 시작하십시오.핵심 단어 pid, stat그리고 command:

ps -eo pid,stat,command

이것이 어떻게 작동하는지 이해하려면 다음 예를 고려하십시오.

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

ping 8.8.8.8 > /dev/null

다른 터미널에서:

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

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

  • PID는12518
  • 프로세스상태S+(키워드를 통해 stat)
  • command이 프로세스를 생성하는 것은ping 8.8.8.8

이 프로세스가 포그라운드인지 백그라운드인지 확인하려면 한 가지 단계가 더 필요합니다.상태값은 S+다음과 같아야 합니다.디코딩됨- man ps제목 아래에 PROCESS STATE CODE다음 내용이 표시됩니다.

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

따라서 +두 번째 문자 위치에서 프로세스가 실행 중임을 알 수 있습니다.전망. 백그라운드 프로세스는 S첫 번째 문자 위치에 나열되고 두 번째 위치에는 아무것도 나열되지 않을 수 있습니다. 백그라운드 프로세스를 나타내는 몇 가지 다른 문자 조합이 있습니다.이것목록용.


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

관련 정보