您好,登錄后才能下訂單哦!
本篇內(nèi)容介紹了“php進(jìn)程中信號(hào)的實(shí)現(xiàn)方法”的有關(guān)知識(shí),在實(shí)際案例的操作過程中,不少人都會(huì)遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!
說明
1、信號(hào)是一種系統(tǒng)調(diào)用。通常用kill命令發(fā)送某個(gè)信號(hào)給某個(gè)進(jìn)程。
2、具體有哪些信號(hào)可以在liunx/mac中運(yùn)行kill -l查看。
實(shí)例
echo "parent progress pid:{$parentPid}\n"; // 定義一個(gè)信號(hào)處理函數(shù) function sighandler($signo) { $pid = posix_getpid(); echo "{$pid} progress,oh no ,I'm killed!\n"; exit(1); } $pid = pcntl_fork(); if ( $pid == -1) { // 創(chuàng)建失敗 exit("fork progress error!\n"); } else if ($pid == 0) { // 子進(jìn)程執(zhí)行程序 // 注冊(cè)信號(hào)處理函數(shù) declare(ticks=10); pcntl_signal(SIGINT, "sighandler"); $pid = posix_getpid(); while(true){ echo "{$pid} child progress is running!\n"; sleep(1); } exit("({$pid})child progress end!\n"); }else{ // 父進(jìn)程執(zhí)行程序 $childList[$pid] = 1; // 5秒后,父進(jìn)程向子進(jìn)程發(fā)送sigint信號(hào). sleep(5); posix_kill($pid,SIGINT); sleep(5); } echo "({$parentPid})main progress end!\n";
“php進(jìn)程中信號(hào)的實(shí)現(xiàn)方法”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。