"ls"를 실행하기 위해 별도의 프로세스가 필요한 이유는 무엇입니까?

Crisron

ls실행을 위해 별도의 프로세스 필요한 이유는 무엇 입니까? cd포크 메커니즘으로 같은 명령을 실행할 수없는 이유를 알고 있지만 ls포크없이 실행 하면 해 가 될까요?

크리스 다운

대답은 다소간 ls외부 실행 파일입니다. 를 실행하여 위치를 볼 수 있습니다 type -p ls.

ls그렇다면 쉘에 내장 되지 않습니까? 글쎄, 왜 그래야 하는가? 쉘의 역할은 사용 가능한 모든 명령을 포함하는 것이 아니라 명령을 실행할 수있는 환경을 제공하는 것입니다. 일부 최신 셸에는 echo, printf및 ilk가 내장 되어 있으며, 기술적 으로 내장 할 필요는 없지만 반복적으로 실행될 때 성능상의 이유로 만들어집니다 (주로 타이트 루프에서). 그것들을 빌트인으로 만들지 않으면, 쉘은 그들에 대한 각 호출에 대해 새로운 프로세스를 포크하고 실행해야하는데, 이는 매우 느릴 수 있습니다.

최소한 ls외부 실행 파일 인을 실행하려면 시스템 호출의 exec 계열 중 하나를 실행해야합니다. 당신은 분기없이이 작업을 수행하지만, 당신이 사용하는 것을 기본 쉘을 대체 할 것이다. 다음을 수행하여 해당 인스턴스에서 어떤 일이 발생하는지 확인할 수 있습니다.

exec ls; echo "this never gets printed"

셸의 프로세스 이미지가 교체되었으므로이 작업을 수행 한 후에는 현재 셸에 더 이상 액세스 할 수 없습니다. ls를 실행 한 후에도 쉘을 계속 실행할 수 있으려면 명령이 쉘에 빌드되어야합니다.

Forking을 사용하면 기본 셸이 아닌 프로세스를 교체 할 수 있습니다. 즉, 나중에 셸을 계속 실행할 수 있습니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

새로운 프로세스를 생성하기 위해 포크가 필요한 이유는 무엇입니까?

분류에서Dev

읽기 액세스를 위해 IRQ 안전 버전의 seqlock이 필요한 이유는 무엇입니까?

분류에서Dev

비밀번호없이 sudo를 실행할 수 있는데 sudo를 실행하기 위해 tty가 필요한 이유는 무엇입니까?

분류에서Dev

사용자가 프로그램을 실행하기 위해 암호를 입력하도록 요구하는 가장 깨끗한 방법은 무엇입니까?

분류에서Dev

위치 서비스를 개선하기 위해 Wi-Fi가 필요한 이유는 무엇입니까?

분류에서Dev

Jest가 비동기 코드를 테스트하기 위해 Babel이 필요한 이유는 무엇입니까?

분류에서Dev

증가하는 정수 열 : 쿼리 속도를 높이기 위해 인덱스가 필요한 이유는 무엇입니까?

분류에서Dev

Spark가 간단한 집계를 위해 5 개의 작업을 실행하는 이유는 무엇입니까?

분류에서Dev

Ubuntu가 잠자기 상태를 방지하기 위해 실행할 수있는 간단한 명령 / 프로세스는 무엇입니까?

분류에서Dev

오류를 피하기 위해 F 접미사가 필요한 이유는 무엇입니까?

분류에서Dev

ls 형식 의미를 이해하는 데 필요한 도움

분류에서Dev

ls가 중복 스위치를 허용하는 이유는 무엇입니까?

분류에서Dev

Perl에서 정규 표현식의 결과를 저장하기 위해 괄호가 필요한 이유는 무엇입니까?

분류에서Dev

MonadReader를 정의하는 데 FunctionalDependency가 필요한 이유는 무엇입니까?

분류에서Dev

www-data가 디렉토리에 업로드 된 파일을 쓰기 위해 실행 액세스 권한이 필요한 이유는 무엇입니까?

분류에서Dev

업그레이드를 수행하기 위해 CDROM이 필요한 이유는 무엇입니까?

분류에서Dev

별도의 프로세스를 실행하기위한 기본 아키텍처

분류에서Dev

Rest api를 통해 사용 가능한 Rust에서 진행 상태로 장기 실행 프로세스를 구현하는 방법은 무엇입니까?

분류에서Dev

프로그래밍 방식으로 SMS를 보내기 위해 SMS 게이트웨이가 필요한 이유는 무엇입니까?

분류에서Dev

유형 매개 변수를 제한하기 위해 특성이 필요한 이유는 무엇입니까?

분류에서Dev

계산 속도를 높이기 위해 입력을 별개의 요소로만 줄이는 용어는 무엇입니까?

분류에서Dev

VS2013 Ultimate에서 개발 한 AngularJS 앱을 테스트하기 위해 각도기를 실행하는 가장 좋은 방법은 무엇입니까?

분류에서Dev

데이터베이스에 입력하기 위해 특별한주의가 필요한 기호는 무엇입니까?

분류에서Dev

setState에서 렌더에 의해 실행되는 onClick 함수가 필요한 이유는 무엇입니까?

분류에서Dev

정렬을 위해 파이프를 통해 Ubuntu에서 열별로 ls를 정렬하는 방법은 무엇입니까?

분류에서Dev

R 사용 : 분기 별 날짜별로 케이스를 하위 선택하고 각 분기 내에서 별도의 변수로 고유 한 케이스를 식별하는 방법은 무엇입니까?

분류에서Dev

포크 직후 exec ()를 호출하는 자식 프로세스가 부모 주소 공간의 별도 사본을 필요로하지 않는 이유는 무엇입니까?

분류에서Dev

재부팅이 필요한 Ubuntu가 중단 된 후 범인 프로세스를 식별하는 방법은 무엇입니까?

분류에서Dev

존재하는 유형 정보를 보존하기 위해 패턴 일치가 필요한 이유는 무엇입니까?

Related 관련 기사

  1. 1

    새로운 프로세스를 생성하기 위해 포크가 필요한 이유는 무엇입니까?

  2. 2

    읽기 액세스를 위해 IRQ 안전 버전의 seqlock이 필요한 이유는 무엇입니까?

  3. 3

    비밀번호없이 sudo를 실행할 수 있는데 sudo를 실행하기 위해 tty가 필요한 이유는 무엇입니까?

  4. 4

    사용자가 프로그램을 실행하기 위해 암호를 입력하도록 요구하는 가장 깨끗한 방법은 무엇입니까?

  5. 5

    위치 서비스를 개선하기 위해 Wi-Fi가 필요한 이유는 무엇입니까?

  6. 6

    Jest가 비동기 코드를 테스트하기 위해 Babel이 필요한 이유는 무엇입니까?

  7. 7

    증가하는 정수 열 : 쿼리 속도를 높이기 위해 인덱스가 필요한 이유는 무엇입니까?

  8. 8

    Spark가 간단한 집계를 위해 5 개의 작업을 실행하는 이유는 무엇입니까?

  9. 9

    Ubuntu가 잠자기 상태를 방지하기 위해 실행할 수있는 간단한 명령 / 프로세스는 무엇입니까?

  10. 10

    오류를 피하기 위해 F 접미사가 필요한 이유는 무엇입니까?

  11. 11

    ls 형식 의미를 이해하는 데 필요한 도움

  12. 12

    ls가 중복 스위치를 허용하는 이유는 무엇입니까?

  13. 13

    Perl에서 정규 표현식의 결과를 저장하기 위해 괄호가 필요한 이유는 무엇입니까?

  14. 14

    MonadReader를 정의하는 데 FunctionalDependency가 필요한 이유는 무엇입니까?

  15. 15

    www-data가 디렉토리에 업로드 된 파일을 쓰기 위해 실행 액세스 권한이 필요한 이유는 무엇입니까?

  16. 16

    업그레이드를 수행하기 위해 CDROM이 필요한 이유는 무엇입니까?

  17. 17

    별도의 프로세스를 실행하기위한 기본 아키텍처

  18. 18

    Rest api를 통해 사용 가능한 Rust에서 진행 상태로 장기 실행 프로세스를 구현하는 방법은 무엇입니까?

  19. 19

    프로그래밍 방식으로 SMS를 보내기 위해 SMS 게이트웨이가 필요한 이유는 무엇입니까?

  20. 20

    유형 매개 변수를 제한하기 위해 특성이 필요한 이유는 무엇입니까?

  21. 21

    계산 속도를 높이기 위해 입력을 별개의 요소로만 줄이는 용어는 무엇입니까?

  22. 22

    VS2013 Ultimate에서 개발 한 AngularJS 앱을 테스트하기 위해 각도기를 실행하는 가장 좋은 방법은 무엇입니까?

  23. 23

    데이터베이스에 입력하기 위해 특별한주의가 필요한 기호는 무엇입니까?

  24. 24

    setState에서 렌더에 의해 실행되는 onClick 함수가 필요한 이유는 무엇입니까?

  25. 25

    정렬을 위해 파이프를 통해 Ubuntu에서 열별로 ls를 정렬하는 방법은 무엇입니까?

  26. 26

    R 사용 : 분기 별 날짜별로 케이스를 하위 선택하고 각 분기 내에서 별도의 변수로 고유 한 케이스를 식별하는 방법은 무엇입니까?

  27. 27

    포크 직후 exec ()를 호출하는 자식 프로세스가 부모 주소 공간의 별도 사본을 필요로하지 않는 이유는 무엇입니까?

  28. 28

    재부팅이 필요한 Ubuntu가 중단 된 후 범인 프로세스를 식별하는 방법은 무엇입니까?

  29. 29

    존재하는 유형 정보를 보존하기 위해 패턴 일치가 필요한 이유는 무엇입니까?

뜨겁다태그

보관