<?php
// 編寫一個簡單daemon程式
$pid = pcntl_fork();
switch($pid) {
case 0:
// 2.子程式邏輯
$mypid = posix_getpid();
//echo "Son pid is $mypid\n";
// 3.升級組長程式
if (!$sid = posix_setsid()) {
exit("Set sid error\n");
}
// 4.防止組長程式再次控制終端
if (-1 == pcntl_fork()) {
exit("Fork error\n");
}
// 5.標準輸入/輸出/錯誤
fclose(STDIN);
fclose(STDOUT);
fclose(STDERR);
// 6.改變目錄
chdir("/");
// 7.重設掩碼
umask(0);
break;
case -1:
// fork err
exit("Fork error\n");
break;
default:
// 1.父程式邏輯
$mypid = posix_getpid();
//echo "Parent pid is $mypid\n";
exit();
break;
}
for ($i = 0; $i < 10000; $i ++) {
file_put_contents("/tmp/wutao.log", "i=$i\n", FILE_APPEND);
}
sleep(10);
===
如上程式已加註釋並加了序號。大家可以參考一下,有啥疑問或問題我們們可以及時交流, 感謝!
下節我們們講講程式/執行緒/多程式的一些相關基礎,一起再鞏固複習複習!