> 시스템 튜토리얼 > 리눅스 > Linux 셸 및 프로세스

Linux 셸 및 프로세스

WBOY
풀어 주다: 2024-06-12 22:46:30
원래의
780명이 탐색했습니다.

Linux之shell 和进程

먼저 여기에서 몇 가지 명령을 실행하세요:

로그인 프로세스의 ID를 인쇄하세요(로그인하고 종료할 때까지 항상 존재함)

으아아아

로그인 프로세스에 의해 분기된 셸 프로세스를 인쇄합니다(로그인하고 종료할 때까지 항상 존재함)

으아아아

위 명령에서 볼 수 있듯이:

로그인 프로세스 ID는 3411이며, 이는 bash 쉘 하위 프로세스 3412를 생성합니다. 향후 스크립트 실행,

3412 여기서는 이를 메인 셸이라고 부르는데, 이는 스크립트를 처리하기 위한 하위 셸 프로세스를 시작합니다.

(참고: bash에서는 서브쉘 프로세스의 PID가 특수 변수 '$$'에 저장되고, PPID는 서브쉘의 상위 프로세스 ID를 저장합니다.)

검증을 위해 두 개의 작은 프로그램을 작성해 봅시다:

george.guo@ls:~$ 고양이 yes.c

으아아아

george.guo@ls:~$ 고양이 테스트

으아아아

실행 결과는 다음과 같습니다.

george.guo@ls~$ ./yes

으아아아

yes 프로세스의 상위 프로세스 ID가 3412임을 알 수 있는데, 이는 로그인 프로세스 포크와 메인 쉘의 bash 쉘 하위 프로세스입니다. 그 이유는

yes는 메인 쉘에 의해 실행됩니다. 예 프로세스 ID는 6080, 호출 시스템, 포크 및 하위 쉘 ID는 6081입니다.

시스템 호출의 경우:

system()을 사용하여 명령을 실행하려면 최소한 두 개의 프로세스를 만들어야 합니다. 셸 실행을 위한 하나(여기서 ID는 6081),

다른 하나 이상은 셸에서 실행되는 명령에 사용됩니다(여기에는 스크립트 테스트 자체인 하위 셸이 있습니다).

스크립트 테스트 자체의 프로세스 ID는 6082입니다.

위 내용은 Linux 셸 및 프로세스의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:linuxprobe.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿