ps가 수면 과정을 볼 수 없는 이유는 무엇입니까?

ps가 수면 과정을 볼 수 없는 이유는 무엇입니까?

첫 번째 터미널을 만든 다음 "sleep 1000 &"를 사용한 다음 "ps"를 통해 찾았습니다. 문제는 두 번째 터미널을 만들고 "ps"를 입력하면 절전 프로세스가 없다는 것입니다. 이유를 알고 싶습니다.

여기에 이미지 설명을 입력하세요.(내 과제에는 "팁: TTY 열"이라고 나와 있습니다.)

답변1

기본적으로 ps현재 터미널(tty)에 연결된 프로세스만 표시됩니다. 귀하의 경우에는 쉘과 ps자체가 표시됩니다 pts/2. sleep예를 들어 보려면 이 제한을 제거해야 합니다 .

ps -e

man ps필터링 프로세스에 사용할 수 있는 다양한 옵션에 대해 알아보려면 리소스를 참조하세요 .

답변2

문제는 두 번째 터미널을 만들고 "ps"를 입력하면 sleep프로세스가 없다는 것입니다.

일부(전부는 아님) 대화형 셸의 경우 sleep 이는 셸에 대한 내장 호출일 수 있습니다.수면(3)( cd 쉘 내장 호출과 마찬가지로목차(2)).

이런 일이 발생하면 아무 것도 표시되지 않습니다.sleep 프로세스왜냐하면 아무것도 없기 때문입니다. 그러면 그 과정은수면(3)-ing은 당신 것입니다유닉스 쉘;자신만의 쉘 인터프리터를 작성할 수도 있습니다(참조허리띠간단하지만 약간 잘못된 예).

많은 Linux 쉘은오픈 소스소프트웨어(또는무료 소프트웨어), 따라서 소스 코드를 연구하여 실제로 호출하는지 확인하세요.수면(3)또는수면(3)-또는 적절하게도여론조사(2)등등... - 또한 참조시간(7)그리고사진 선택 (2). 자세히 알아보기시스템 호출(2)그리고 쉘이 무엇을 하는지 생각해보세요(또는 다음을 사용하세요)트랙(1)또는트랙(1)또는 디버거).

많은 Linux 배포판에는GNU 배쉬일반적인 대화형 쉘과 같습니다. 하지만 당신은 설치할 수 있습니다다루기 힘든또는물고기또는영어로그인 셸로(사용chsh(1)).

내 개인적인 취향은 zsh(자동 완성데비안의 시설은 훌륭합니다.)

좀 읽어보세요에 관한 교과서운영 체제및/또는 자신만의 코드를 작성하세요.유닉스 쉘연습으로 사용하거나 기존 항목을 확장합니다(예: sleep내장된 항목이 없는 경우 내장된 항목을 추가하여).

관련 정보