이 명령을 사용하여 ps
실행 중인 모든 백그라운드 프로세스를 나열할 수 있습니까, 아니면 이 명령에 대해 백그라운드 프로세스 목록을 가져오는 유일한 옵션입니까 jobs
?
답변1
이 명령은 일반적으로 연산자를 사용하거나 (예를 들어) 백그라운드 작업을 시작하여 현재 셸에서 시작된 모든 백그라운드 작업을 표시합니다 jobs
.&
^Z bg
sleep 10 &
시스템에서 실행 중인 모든 백그라운드 프로세스를 보려면 , ps -e
또는 를 사용 ps -eF
하여 추가 세부 정보를 얻을 수 있습니다.
명령이 수행할 수 있는 작업에 대한 자세한 정보를 얻으려면 거의 항상 run man ps
( ps
모든 명령으로 대체)을 실행하여 많은 정보가 포함된 매뉴얼 페이지를 얻을 수 있습니다.
답변2
"백그라운드 프로세스"는 일반적으로 터미널 작업 제어를 나타냅니다. 이는 자신이 제어하는 터미널 장치의 전경 프로세스 그룹이 아닌 프로세스 그룹의 프로세스입니다.
procps
구현된 Linux 시스템에서는 다음 ps
을 통해 찾을 수 있습니다.
ps -eo pid,pgid,tpgid,args | awk 'NR == 1 || ($3 != -1 && $2 != $3)'
(터미널 전경 프로세스 그룹 ID) 가 (터미널을 제어하는 프로세스) tpgid
가 아니고 해당 프로세스 그룹 ID가 tpgid가 아닌 프로세스를 찾는 곳입니다 .-1
여기에는 현재 포그라운드 작업(터미널 포그라운드에서 실행되는 경우 파이프라인을 실행하는 쉘 포함)을 기다리느라 바쁜 셸도 포함됩니다. 왜냐하면 해당 작업을 포그라운드로 가져오고 정의에 따라 자체적으로 백그라운드에 있기 때문입니다.