
pcntl_unshare() 함수는 자식 프로세스에 대한 제어 권한을 제어하는 데 사용할 수 있습니다. 이 함수를 사용하면 자식 프로세스가 부모 프로세스의 자원(예: 파일 디스크립터, 네트워크 소켓 등)을 공유하지 않도록 할 수 있습니다.
자식 프로세스에 대한 제어 권한을 제어하는 방법은 다음과 같습니다.
1. CLONE_FILES: 자식 프로세스가 부모 프로세스의 파일 디스크립터를 공유하지 않도록 합니다.
2. CLONE_FS: 자식 프로세스가 부모 프로세스의 파일 시스템을 공유하지 않도록 합니다.
3. CLONE_IO: 자식 프로세스가 부모 프로세스의 입출력 장치를 공유하지 않도록 합니다.
4. CLONE_PIDFD: 자식 프로세스의 PIDFD를 부모 프로세스에 전달하지 않도록 합니다.
5. CLONE_SIGHAND: 자식 프로세스가 부모 프로세스의 신호 핸들러를 공유하지 않도록 합니다.
6. CLONE_VM: 자식 프로세스가 부모 프로세스의 메모리 공간을 공유하지 않도록 합니다.
예를 들어, 자식 프로세스가 부모 프로세스의 파일 디스크립터를 공유하지 않도록 하려면 다음과 같이 코드를 작성할 수 있습니다.
#hostingforum.kr
php
pcntl_unshare(CLONE_FILES);
$pid = pcntl_fork();
if ($pid == -1) {
die("fork failed");
} elseif ($pid) {
// 부모 프로세스
} else {
// 자식 프로세스
}
이 코드를 실행하면 자식 프로세스는 부모 프로세스의 파일 디스크립터를 공유하지 않습니다.
2025-04-24 07:07