네임 스페이스 생성 오류

o.awajan

새 네임 스페이스로 프로세스를 만들려고하는데,이를 위해 적절한 플래그와 함께 clone (2)을 사용해야합니다. 다음은 복제 시스템 호출과 printf () 문을 사용하여 부모 PID를 인쇄합니다.

printf("clone() = %ld\n", (long)getpid());
printf("PID: %ld\n", (long)getpid());
struct utsname utsname;
uname(&utsname);
printf("parent namespace hostname: %s\n", utsname.nodename);

clone(child_main(&process_struct, checkpoint), stack + process_struct.Stack,
  CLONE_NEWCGROUP
 |CLONE_NEWIPC
 |CLONE_NEWNET
 |CLONE_NEWNS
 |CLONE_NEWPID
 |CLONE_NEWUTS|SIGCHLD, &process_struct)

그리고 child_main () 함수, 자식 함수는 호스트 이름을 설정 한 다음 자식의 PID를 인쇄합니다. 문제는 시스템의 호스트 이름이 네임 스페이스의 호스트 이름뿐만 아니라 자식의 PID가 부모와 동일하다는 것입니다. 잘못되었고 네임 스페이스 내의 자식 PID는 1이어야하고 PPID는 0 (부모 없음을 의미)이어야합니다. 또한 sethostname (2)는 자식 프로세스 네임 스페이스에만 영향을 주어야합니다.

int child_main(struct process *process, int *checkpoint){

  char c;

  fprintf(stderr,"=> IPC setup...");
  //double check the IPC
  close(checkpoint[1]);
  fprintf(stderr,"Done\n");
  if ( sethostname(process->Hostname, strlen(process->Hostname)){

    //close(process->File_descriptor);
    return -1;
  }


  printf("PID: %ld\n", (long)getpid());
  struct utsname utsname;
  uname(&utsname);
  printf("child namespace hostname: %s\n", utsname.nodename);

  // startup the IPC pipes
  read(checkpoint[0], &c, 1);
  char* argv[]={(char*)0};
  if(execve("/bin/bash", argv, NULL) == -1 ){
    fprintf(stderr,"--> Launching process Failed %m\n");
    return -1;
  }

  return 0;

}

이끼

clone()그 첫 번째 인수로 함수 포인터를 취 래퍼의 glibc.

함수 포인터를 전달하는 것이 아니라 int( 복제 호출 하기 전에child_main 부모 프로세스에서 호출되는 의 반환 ). 경우 전달 된되어 첫 번째 인수합니다 (로 포인터를 당신의 반환 )는 -1을 반환 및 설정됩니다 ,하지만 난 당신이 반환 값을 확인하지 않았다고 생각한다.child_mainNULL0child_mainerrnoEINVAL

로부터 clone()맨 :

EINVAL또는 이 NULL로 지정된 clone()경우 glibc 래퍼 함수에 의해 반환 됩니다.fnchild_stack

따라서 child_main부모 프로세스에서 실행되고 자식 프로세스 나 네임 스페이스가 생성되지 않으며 child_main초기 네임 스페이스, 즉 전체 머신에 호스트 이름을 설정합니다.

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

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

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Aerospike asbackup 명령이 잘못된 네임 스페이스 오류를 생성 함

분류에서Dev

네임 스페이스 오류가 발생합니다.

분류에서Dev

네임 스페이스 오류 OfficeOpenXML EPPlus

분류에서Dev

XPage의 네임 스페이스 오류

분류에서Dev

Rails의 중첩 된 네임 스페이스가 네임 스페이스와 동일한 이름의 모델에 액세스하는 중 오류 발생

분류에서Dev

MVC보기로 이동할 때 오류 발생-유형 또는 네임 스페이스 이름 'UserModel'이 네임 스페이스에 없습니다.

분류에서Dev

_ViewImports.cshtml 오류 발생 네임 스페이스 'yyy'에 유형 또는 네임 스페이스 이름 'xxx'가 없습니다.

분류에서Dev

Azure DevOps 2019 On-Prem-컬렉션 생성시 오류 : "프레임 워크 보안 네임 스페이스 생성 단계의 LeaseLostException"

분류에서Dev

XML 스키마 네임 스페이스-유효성 검사 오류 가져 오기

분류에서Dev

오류 발생 : 유형 또는 네임 스페이스 이름 "SelectList"를 찾을 수 없습니다.

분류에서Dev

Ruby : 사용자 정의 네임 스페이스 예외 발생이 오류로 끝남

분류에서Dev

kubectl을 사용하여 AWS EKS 클러스터에서 네임 스페이스 생성 시도-가져 오기 : 서버에서 오류 (금지됨) : 네임 스페이스가 금지됨

분류에서Dev

네임 스페이스 내부에 함수를 정의 할 때 링커 오류가 발생합니까?

분류에서Dev

계속 오류가 발생합니다. 태그가 XML 네임 스페이스에 없습니다.

분류에서Dev

발생한 오류의 네임 스페이스를 검색 할 수 있습니까?

분류에서Dev

Java 바인딩 라이브러리 프로젝트에서 네임 스페이스 이름 바꾸기-생성기 오류

분류에서Dev

오류 : 속성 선언에 대한 잘못된 네임 스페이스 : http://www.w3.org/2001/XMLSchema-instance

분류에서Dev

PHP xmllib XSD 유효성 검사 네임 스페이스 오류 : 예상하지 않은 X, 예상되는 X

분류에서Dev

네임 스페이스 C ++ 내부에 클래스 생성

분류에서Dev

RelaxNG에 포함 된 Schematron Assert 규칙이 선언되지 않은 네임 스페이스 접두사 오류를 생성 함

분류에서Dev

xml 네임 스페이스의 속성

분류에서Dev

Composer의 네임 스페이스 구성

분류에서Dev

네임 스페이스 내에있는 오류 만 캡처

분류에서Dev

XSD 오류-제한 태그 및 네임 스페이스

분류에서Dev

SessionHandlerInterface가있는 PHP 오류 네임 스페이스

분류에서Dev

저장 프로 시저 SQL의 네임 스페이스 오류

분류에서Dev

c ++-네임 스페이스의 Boost.Log 오류

분류에서Dev

r 패키지를 설치 / 업데이트 할 때 네임 스페이스 오류, 권한 거부 오류 등이 발생합니다.

분류에서Dev

Dart의 네임 스페이스에 요소 생성

Related 관련 기사

  1. 1

    Aerospike asbackup 명령이 잘못된 네임 스페이스 오류를 생성 함

  2. 2

    네임 스페이스 오류가 발생합니다.

  3. 3

    네임 스페이스 오류 OfficeOpenXML EPPlus

  4. 4

    XPage의 네임 스페이스 오류

  5. 5

    Rails의 중첩 된 네임 스페이스가 네임 스페이스와 동일한 이름의 모델에 액세스하는 중 오류 발생

  6. 6

    MVC보기로 이동할 때 오류 발생-유형 또는 네임 스페이스 이름 'UserModel'이 네임 스페이스에 없습니다.

  7. 7

    _ViewImports.cshtml 오류 발생 네임 스페이스 'yyy'에 유형 또는 네임 스페이스 이름 'xxx'가 없습니다.

  8. 8

    Azure DevOps 2019 On-Prem-컬렉션 생성시 오류 : "프레임 워크 보안 네임 스페이스 생성 단계의 LeaseLostException"

  9. 9

    XML 스키마 네임 스페이스-유효성 검사 오류 가져 오기

  10. 10

    오류 발생 : 유형 또는 네임 스페이스 이름 "SelectList"를 찾을 수 없습니다.

  11. 11

    Ruby : 사용자 정의 네임 스페이스 예외 발생이 오류로 끝남

  12. 12

    kubectl을 사용하여 AWS EKS 클러스터에서 네임 스페이스 생성 시도-가져 오기 : 서버에서 오류 (금지됨) : 네임 스페이스가 금지됨

  13. 13

    네임 스페이스 내부에 함수를 정의 할 때 링커 오류가 발생합니까?

  14. 14

    계속 오류가 발생합니다. 태그가 XML 네임 스페이스에 없습니다.

  15. 15

    발생한 오류의 네임 스페이스를 검색 할 수 있습니까?

  16. 16

    Java 바인딩 라이브러리 프로젝트에서 네임 스페이스 이름 바꾸기-생성기 오류

  17. 17

    오류 : 속성 선언에 대한 잘못된 네임 스페이스 : http://www.w3.org/2001/XMLSchema-instance

  18. 18

    PHP xmllib XSD 유효성 검사 네임 스페이스 오류 : 예상하지 않은 X, 예상되는 X

  19. 19

    네임 스페이스 C ++ 내부에 클래스 생성

  20. 20

    RelaxNG에 포함 된 Schematron Assert 규칙이 선언되지 않은 네임 스페이스 접두사 오류를 생성 함

  21. 21

    xml 네임 스페이스의 속성

  22. 22

    Composer의 네임 스페이스 구성

  23. 23

    네임 스페이스 내에있는 오류 만 캡처

  24. 24

    XSD 오류-제한 태그 및 네임 스페이스

  25. 25

    SessionHandlerInterface가있는 PHP 오류 네임 스페이스

  26. 26

    저장 프로 시저 SQL의 네임 스페이스 오류

  27. 27

    c ++-네임 스페이스의 Boost.Log 오류

  28. 28

    r 패키지를 설치 / 업데이트 할 때 네임 스페이스 오류, 권한 거부 오류 등이 발생합니다.

  29. 29

    Dart의 네임 스페이스에 요소 생성

뜨겁다태그

보관