>  기사  >  컴퓨터 튜토리얼  >  리눅스 exec 명령 매뉴얼

리눅스 exec 명령 매뉴얼

王林
王林앞으로
2024-02-18 16:42:13683검색

Linux exec命令手册

기능 설명

exec 명령은 Linux에서 지정된 명령을 호출하고 실행하는 데 사용됩니다. exec 명령은 일반적으로 쉘 스크립트에서 다른 명령을 실행하는 데 사용됩니다. 현재 터미널에서 exec 명령을 사용하면 지정된 명령은 새 하위 프로세스를 생성하는 대신 실행 후 현재 프로세스를 대체합니다.

명령 구문

으아악

옵션 의미

옵션 의미
-c 실행하려면 빈 환경을 사용하세요
-아 쉘은 실행된 명령에 이름을 0개의 인수로 전달합니다
-l 명령어에 매개변수를 전달하려면 쉘 시작 부분에 대시를 넣으세요

참고 사례

예 1

으아악

예 2

으아악

지식 확장

1. 시스템 호출 exec는 원래 프로세스를 새로운 프로세스로 대체하지만 프로세스의 PID는 변경되지 않습니다. 따라서 exec 시스템 호출은 새로운 프로세스를 생성하지 않고, 원래 프로세스 컨텍스트의 내용만 교체한다고 볼 수 있다. 원래 프로세스의 코드 세그먼트, 데이터 세그먼트 및 스택 세그먼트가 새 프로세스로 대체됩니다.

프로세스에는 주로 다음과 같은 측면이 포함됩니다.

  • 실행 가능한 프로그램
  • 프로세스와 관련된 모든 데이터(변수, 메모리, 버퍼 포함)
  • 프로그램 컨텍스트(프로그램 카운터 PC, 프로그램 실행 위치 저장)
  • 2. exec는 extract와 execv로 시작하는 6개의 함수로 구성된 함수 클러스터입니다.

    exec 시스템 호출을 실행하려면 일반적으로 fork() 함수를 사용하여 새 프로세스를 만든 다음 프로세스가 exec 호출을 실행하도록 합니다. 우리는 fork()가 새 프로세스를 생성한 후 상위 프로세스가 하위 프로세스와 코드 세그먼트를 공유하지만 데이터 공간은 분리되어 있지만 상위 프로세스는 자체 데이터 공간의 내용을 하위 프로세스에 복사한다는 것을 알고 있습니다. 컨텍스트도 하위 프로세스에 복사됩니다. 효율성을 높이기 위해 copy-on-write 전략을 채택합니다. 즉, 자식 프로세스가 생성될 때 부모 프로세스의 주소 공간은 복사되지 않고 부모 프로세스와 자식 프로세스는 공통 주소 공간을 가지며, 자식 프로세스가 데이터를 써야 하는 경우(예: 버퍼에 데이터 쓰기) 이때 주소 공간이 복사되고 버퍼가 자식 프로세스에 복사됩니다. 따라서 상위 프로세스와 하위 프로세스는 독립적인 주소 공간을 갖습니다. 이 전략은 fork() 이후 exec를 실행한 후 효율성을 크게 향상시킬 수 있습니다. 처음에 복사한 다음 exec 이후에는 하위 프로세스의 데이터가 폐기되고 새 프로세스로 대체됩니다.

    위 내용은 리눅스 exec 명령 매뉴얼의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

    성명:
    이 기사는 mryunwei.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제