男女疯狂一边摸一边做羞羞视频|啊好深好硬快点用力别停动态图|亚洲一区无码中文字幕|特级无码毛片免费视频播放▽|久久狠狠躁免费观看|国内精品久久久久久网站

pcntl_signal

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

pcntl_signal安裝一個(gè)信號處理器

說(shuō)明

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

函數pcntl_signal()signo指定的信號安裝一個(gè)新 的信號處理器。

參數

signo

信號編號。

handler

信號處理器可以是用戶(hù)創(chuàng )建的函數或方法的名字,也可以是系統常量 SIG_IGN(譯注:忽略信號處理程序)或SIG_DFL(默認信號處理程序).

注意:

注意當你使用一個(gè)對象方法的時(shí)候,該對象的引用計數回增加使得它在你改變?yōu)槠渌幚砘蚰_本結束之前是持久存在的。

restart_syscalls

指定當信號到達時(shí)系統調用重啟是否可用。(譯注:經(jīng)查資料,此參數意為系統調用被信號打斷時(shí),系統調用是否從 開(kāi)始處重新開(kāi)始,但根據http://bugs.php.net/bug.php?id=52121,此參數存在bug無(wú)效。)

返回值

成功時(shí)返回 true, 或者在失敗時(shí)返回 false。

更新日志

版本 說(shuō)明
4.3.0 增加參數restart_syscalls。
4.3.0 對象方法可以作為回調被使用。
4.3.0 PCNTL現在使用了ticks作為信號處理的回調機制,ticks在速度上遠遠超過(guò)了之前的處理機制。 這個(gè)變化與“用戶(hù)ticks”遵循了相同的語(yǔ)義。您可以使用declare() 語(yǔ)句在程序中指定允許發(fā)生回調的位置。這使得我們對異步事件處理的開(kāi)銷(xiāo)最小化。在編譯PHP時(shí) 啟用pcntl將始終承擔這種開(kāi)銷(xiāo),不論您的腳本中是否真正使用了pcntl。 PHP 4.3.0使用ticks作為信號處理回調機制,這比以前的機制快了很多。這個(gè)變化與 "用戶(hù)ticks" 遵循了相同的語(yǔ)義。您可以使用declare() 語(yǔ)句在程序中指定允許發(fā)生回調的位置。

范例

示例 #1 pcntl_signal()示例

<?php
//使用ticks需要PHP 4.3.0以上版本
declare(ticks 1);

//信號處理函數
function sig_handler($signo)
{

     switch (
$signo) {
         case 
SIGTERM:
             
// 處理SIGTERM信號
             
exit;
             break;
         case 
SIGHUP:
             
//處理SIGHUP信號
             
break;
         case 
SIGUSR1:
             echo 
"Caught SIGUSR1...\n";
             break;
         default:
             
// 處理所有其他信號
     
}

}

echo 
"Installing signal handler...\n";

//安裝信號處理器
pcntl_signal(SIGTERM"sig_handler");
pcntl_signal(SIGHUP,  "sig_handler");
pcntl_signal(SIGUSR1"sig_handler");

// 或者在PHP 4.3.0以上版本可以使用對象方法
// pcntl_signal(SIGUSR1, array($obj, "do_something");

echo "Generating signal SIGTERM to self...\n";

//向當前進(jìn)程發(fā)送SIGUSR1信號
posix_kill(posix_getpid(), SIGUSR1);

echo 
"Done\n"

?>

參見(jiàn)

  • pcntl_fork() - 在當前進(jìn)程當前位置產(chǎn)生分支(子進(jìn)程)。譯注:fork是創(chuàng )建了一個(gè)子進(jìn)程,父進(jìn)程和子進(jìn)程 都從fork的位置開(kāi)始向下繼續執行,不同的是父進(jìn)程執行過(guò)程中,得到的fork返回值為子進(jìn)程 號,而子進(jìn)程得到的是0。
  • pcntl_waitpid() - 等待或返回fork的子進(jìn)程狀態(tài)

男女疯狂一边摸一边做羞羞视频|啊好深好硬快点用力别停动态图|亚洲一区无码中文字幕|特级无码毛片免费视频播放▽|久久狠狠躁免费观看|国内精品久久久久久网站