이미 실행 중인 프로세스를 상위 프로세스에서 분리하는 방법은 무엇입니까?

이미 실행 중인 프로세스를 상위 프로세스에서 분리하는 방법은 무엇입니까?

세 가지 프로세스가 있습니다.

  • CP라고 불리는 "제어 프로그램"입니다.
  • CP는 MP라는 관리 프로세스를 시작합니다.
  • MP는 WP라는 작업자 프로세스를 시작합니다.

CP는 내가 수정할 수 있는 유일한 프로그램입니다. MP 및 WP와의 모든 상호 작용은 stdin 및 stdout을 통해 이루어지며 MP 및 WP의 PID가 지정된 운영 체제 작업을 통해 이루어집니다.

WP는 잠시 동안 실행된 후 다음 단계로 이동할 준비가 되었음을 알립니다.

CP가 WP를 제어하고 MP에서 분리하기를 원합니다. CP는 WP의 stdin, stdout 및 stderr에 직접 액세스합니다. MP는 종료되고 WP는 CP의 통제하에 계속 운영됩니다.

Linux에서 Python을 사용하여 이 작업을 어떻게 수행합니까?

답변1

/proc예를 들어 WP 에서 파일 설명자를 열 수 있습니다 /proc/123/fd/0. 이때 MP와 CP는 모두 WP의 stdin/stdout/stderr에 대한 핸들을 엽니다. MP를 죽여 CP만이 MP를 가지고 있는지 확인할 수 있습니다.

관련 정보