2017-01-23 15 views
0

PHP OCI8 모듈에 문제가 있습니다.PHP OCI 연결이 SIGINT (ctrl-c)를 무시합니다.

<?php 

$db = oci_connect(...); 

while (true) { 
    // do something 
} 

정상적으로이 스크립트를 막을 방법이 없다 : 한 번 PHP 스크립트가 중단 신호를 무시 열린 OCI의 연결이

나는 몇 가지 물건을 처리하는 PHP 근로자를하고 난 깨달았다. 적어도 내가 아는 한. pcntl_signal()을 사용하여 맞춤식 신호 처리기를 만들려고했지만 제대로 작동하지 않습니다. 지금 당장 프로세스를 수동으로 종료해야합니다.

누구나 occi와 함께이 문제가 있거나 SIGINT을 처리 할 수 ​​있습니까?

건배!

당신이 코드를 시도 할 수 있습니다
+0

가능한 중복 : http://stackoverflow.com/questions/17124881/oracle-proc-oci-install-handlers-for # – ibre5041

답변

0

:

여기
declare(ticks=1); //mandatory 
oci_connect(...); 

pcntl_signal(SIGINT, 'sig_handler'); //set handler for signal 

$i = 0; 
while(true) { 
    echo $i; 
    $i++; 
} 

//will handle the ctrl+c. Put whatever you want to do 
function sig_handler() { 
    echo "DIE DIE DIE!"; 
    die(); 
} 

더 : http://php.net/manual/en/function.pcntl-signal.php

+0

불행히도 앞에서 언급했듯이 사용자 지정 신호 처리기 중 하나는 작동하지 않습니다./ –

+0

Oracle 11g 데이터베이스와 연결하여이 코드를 실행했지만 올바르게 작동합니다. 정확히이 코드를 사용해 보셨습니까? –

+0

IMHO env를 설정하는 것이 좋습니다. PHP를 시작하기 전에 변수 DIAG_SIGHANDLER_ENABLED = FALSE. – ibre5041