PHP進程訊號處理

來源:互聯網
上載者:User

標籤:http   io   os   使用   ar   strong   檔案   sp   art   

PHP的pcntl擴充提供了訊號處理的功能,利用它可以讓PHP來接管訊號的處理,在程式開發伺服器端守護進程方面,訊號處理至關重要。pcntl這個擴充僅在cli/cgi模式下可用。mod_php和php-fpm中不可以使用。PHP在編譯的過程中,並沒有把pcntl串連到php-cli可執行檔中。

函數原型:

bool pcntl_signal(int $signo ,callback $handler [,bool $restart_syscalls=true])

第一個參數是訊號ID,具體可以參見這裡http://swoole.sinaapp.com/archives/124

第二個參數是訊號發生時回調的PHP函數。

第三個參數是是否restart,是否重新註冊此訊號。這個參數如果為false,那此訊號只註冊處理一次。

<?php//訊號處理需要註冊ticks才會生效,這裡務必注意//PHP5.4以上版本就不再依賴ticks了declare(ticks = 1);function sig_handler($signo){switch ($signo) {case SIGUSR1:echo "SIGUSR1\n";break;case SIGUSR2:echo "SIGUSR2\n";break;default:echo "unknow";break;}}pcntl_signal(SIGUSR1, "sig_handler");pcntl_signal(SIGUSR2, "sig_handler");posix_kill(posix_getpid(), SIGUSR1);posix_kill(posix_getpid(), SIGUSR2);?>

 

PHP進程訊號處理

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.