프로그램이 종료되기 전에 신호 CGI 출력이 완료 됨

asc99c

C로 작성된 CGI 프로그램에 대해 더 안정적으로 작동하는 최적화를 얻으려고합니다.

응용 프로그램은 디스크에 동기식 쓰기를 수행하며 CGI 출력이 완료된 후 이러한 작업이 수행되기를 바랍니다. 처음에는 이것이 stdin / stdout / stderr 스트림을 닫거나 다시 여는 것만 큼 간단하다고 생각했고 실제로 이것은 여러 서버에서 완벽하게 작동했습니다. 디스크 쓰기가 몇 초가 되더라도 밀리 초 만에 사용자 응답을 받았습니다. 대기했습니다.

안타깝게도 현재 두 대의 서버에서 문제가 발생했습니다. CGI 프로그램이 stdout을 닫 자마자 Apache로부터 종료 신호를받습니다. 몇 초 후, 하드 킬을합니다. 전화 setsid()는 이것에 영향을 미치지 않는 것 같습니다.

CGI 프로그램을 종료하지 않고 클라이언트에 출력을 보내야한다고 Apache에 알리는 다른 방법이 있습니까?

피터 G

mod_cgi 및 단일 프로세스를 사용할 때이를 수행하는 방법이 없습니다. 리소스가 많이 소모되지만 일반적으로 허용되는이를 달성하는 방법을 더블 포크라고합니다. 다음과 같이 진행됩니다.

pid_t kid, grandkid;
if ((kid = fork())) {
    waitpid(kid, null, 0);
}
else if ((grandkid = fork())) {
    exit(0);
}
else {
    // code here
    // do something long lasting
    exit(0);
}

이 PERL 코드에서 수정 됨

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

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

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

배치 파일이 호출되기 전에 Java 프로그램이 종료 됨

분류에서Dev

프로그램이 SIGABRT 신호로 종료 됨, 중단됨

분류에서Dev

C # 비동기 작업이 완료되기 전에 완료 됨

분류에서Dev

Spring-batch가 종료 상태로 종료 됨 : 실제 작업이 완료되기 전에 완료 되었습니까?

분류에서Dev

라우트 내의 로직이 완료되기 전에 서버리스 익스프레스 앱이 종료 됨

분류에서Dev

malloc을 호출 한 후 C 프로그램이 종료 됨

분류에서Dev

JNI 메소드 호출 후 Java 프로그램이 종료 됨

분류에서Dev

작업이 완료되기 전에 NodeJS 비동기가 완료 됨

분류에서Dev

Firebasequery가 완료되기 전에 Android 비동기 작업이 완료 됨

분류에서Dev

이 프로그램이 사용자의 신호 처리기 이후에 종료되지 않는 이유

분류에서Dev

Jquery 지연됨-이전 함수가 완료되기 전에 함수 호출 연기

분류에서Dev

종료 절에 관계없이 프로그램이 여전히 종료 됨 (Python)

분류에서Dev

응용 프로그램이 종료되기 직전에 어떤 메서드가 호출됩니까?

분류에서Dev

POST 호출이 전송되고 사용자가 완료되기 전에 브라우저를 종료하면 완료됩니까?

분류에서Dev

cygwin : 프로그램이 완료 될 때까지 출력이 정지됨

분류에서Dev

분기 전에 프로그램이 종료되지 않음

분류에서Dev

프로그램이 터미널에서 정상적으로 실행되는 동안 CLion IDE에서 "프로세스가 종료 코드 139로 완료 됨"

분류에서Dev

모든 작업이 완료되기 전에 ThreadPoolExecutor 종료

분류에서Dev

q. 약속이 완료되기 전에 모두 반환 됨

분류에서Dev

예상 전에 작업이 완료 됨

분류에서Dev

프로그램이 종료되기 전에 GNU 병렬 출력 stdout이 가능합니까?

분류에서Dev

JQuery-Ajax 호출이 다음 코드 줄 후에 완료 됨

분류에서Dev

프로그램이 완전히 완료되지 않음

분류에서Dev

이전 작업이 완료되기 전에 작업이 시작됨

분류에서Dev

완료 후 알림이 종료 됨

분류에서Dev

비동기가 작업을 완료하기 전에 프로그램이 종료되는 이유는 무엇입니까?

분류에서Dev

C 프로그램이 예기치 않게 종료 됨

분류에서Dev

DELETE 요청이 완료되기 전에 페이지가 렌더링 됨

분류에서Dev

OpenCV- MAC에서 종료 코드 139 (신호 11 : SIGSEGV에 의해 중단됨)로 프로세스가 완료되었습니다.

Related 관련 기사

  1. 1

    배치 파일이 호출되기 전에 Java 프로그램이 종료 됨

  2. 2

    프로그램이 SIGABRT 신호로 종료 됨, 중단됨

  3. 3

    C # 비동기 작업이 완료되기 전에 완료 됨

  4. 4

    Spring-batch가 종료 상태로 종료 됨 : 실제 작업이 완료되기 전에 완료 되었습니까?

  5. 5

    라우트 내의 로직이 완료되기 전에 서버리스 익스프레스 앱이 종료 됨

  6. 6

    malloc을 호출 한 후 C 프로그램이 종료 됨

  7. 7

    JNI 메소드 호출 후 Java 프로그램이 종료 됨

  8. 8

    작업이 완료되기 전에 NodeJS 비동기가 완료 됨

  9. 9

    Firebasequery가 완료되기 전에 Android 비동기 작업이 완료 됨

  10. 10

    이 프로그램이 사용자의 신호 처리기 이후에 종료되지 않는 이유

  11. 11

    Jquery 지연됨-이전 함수가 완료되기 전에 함수 호출 연기

  12. 12

    종료 절에 관계없이 프로그램이 여전히 종료 됨 (Python)

  13. 13

    응용 프로그램이 종료되기 직전에 어떤 메서드가 호출됩니까?

  14. 14

    POST 호출이 전송되고 사용자가 완료되기 전에 브라우저를 종료하면 완료됩니까?

  15. 15

    cygwin : 프로그램이 완료 될 때까지 출력이 정지됨

  16. 16

    분기 전에 프로그램이 종료되지 않음

  17. 17

    프로그램이 터미널에서 정상적으로 실행되는 동안 CLion IDE에서 "프로세스가 종료 코드 139로 완료 됨"

  18. 18

    모든 작업이 완료되기 전에 ThreadPoolExecutor 종료

  19. 19

    q. 약속이 완료되기 전에 모두 반환 됨

  20. 20

    예상 전에 작업이 완료 됨

  21. 21

    프로그램이 종료되기 전에 GNU 병렬 출력 stdout이 가능합니까?

  22. 22

    JQuery-Ajax 호출이 다음 코드 줄 후에 완료 됨

  23. 23

    프로그램이 완전히 완료되지 않음

  24. 24

    이전 작업이 완료되기 전에 작업이 시작됨

  25. 25

    완료 후 알림이 종료 됨

  26. 26

    비동기가 작업을 완료하기 전에 프로그램이 종료되는 이유는 무엇입니까?

  27. 27

    C 프로그램이 예기치 않게 종료 됨

  28. 28

    DELETE 요청이 완료되기 전에 페이지가 렌더링 됨

  29. 29

    OpenCV- MAC에서 종료 코드 139 (신호 11 : SIGSEGV에 의해 중단됨)로 프로세스가 완료되었습니다.

뜨겁다태그

보관