ps는 모든 프로세스를 표시하지 않습니다

ps는 모든 프로세스를 표시하지 않습니다

script터미널을 시작한 직후에 명령을 사용했고 현재 세션 기록이 시작되었지만 ps나중에 명령을 사용했을 때 자체 프로세스 bashps자체 프로세스 두 개만 표시되었지만 스크립트 명령의 모든 프로세스는 표시되지 않았습니다. 백그라운드에서 실행 중인데 왜 이런 일이 발생합니까? 더 일반적으로 말하자면, 실제로 이 명령이 내 터미널에 2개 이상의 프로세스를 표시하는 것을 본 적이 없습니다 ps. 내 쉘이나 터미널 설정에 문제가 있습니까? 저는 현재 우분투를 사용하고 있습니다.

답변1

터미널이나 쉘에는 아무런 문제가 없습니다. 기본적으로 ps동일한 유효 사용자 식별자가 있고 프로세스를 실행하는 사용자와 동일한 터미널에 연결된 프로세스가 표시됩니다. 이로 인해 일반적으로 현재 셸과 ps자체 프로세스 두 개만 표시됩니다. 현재 터미널과 연결된 백그라운드 프로세스가 있는 경우 다음을 실행하여 이를 확인할 수도 있습니다.

sleep 120 &
ps

모든 프로세스를 보려면 다음을 실행하세요.

ps -e

다른 프로세스 선택 플래그도 많이 있습니다. man ps자세한 내용은 시스템을 참조하세요.

이를 실행하면 script새 터미널이 할당되고 새 쉘이 시작되므로 ps내부는 script다른 터미널에서 실행됩니다(동일한 터미널에 있더라도).창문시스템이나 동일한 가상 콘솔에서). 그래서 당신은 그것을 볼 수 없습니다 script. before와 after를 실행하면 tty이러한 현상이 발생하는 것을 볼 수 있습니다 script. 두 가지 다른 값이 출력되는 것을 볼 수 있습니다.

당신은 또한 볼 수 있습니다"터미널", "쉘", "tty" 및 "콘솔"의 정확한 차이점은 무엇입니까?

관련 정보