터미널 세션을 열고 일부 프로세스를 시작했습니다 &
. 터미널 창을 닫으려고 하면 백그라운드에서 아직 실행 중인 작업이 있다는 경고 메시지가 나타납니다.
실행 중인 프로세스를 볼 수 있지만 ps
이 세션을 통해 어떤 프로세스가 시작되었는지 어떻게 알 수 있나요?
답변1
jobs -l
활성 작업의 프로세스 ID 나열
답변2
bash
현재 세션에서 시작된 모든 백그라운드 프로세스를 찾으려면 jobs
내장 기능을 사용할 수 있습니다 bash
.
에서 help jobs
:
jobs: jobs [-lnprs] [jobspec ...] or jobs -x command [args] Display status of jobs. Lists the active jobs. JOBSPEC restricts output to that job. Without options, the status of all active jobs is displayed.
반면, bash
이 세션에서 시작된 모든 프로세스를 찾으려면 이 $$
변수를 사용 bash
하면 현재 인스턴스의 PID를 얻을 수 있습니다 bash
. 그런 다음 명령 출력을 구문 분석하여 ps -ef
상위 프로세스 ID(PPID)가 다음과 같은 모든 프로세스를 찾을 수 있습니다 $$
.
ps -ef | grep -P "^[^ ]+\s+[^ ]+\s+$$\s"
답변3
ps -auxf
백그라운드 프로세스가 어떤 쉘에 속해 있는지 확인하려면 실행하세요 .