php實現(xiàn)簡單的守護進程創(chuàng)建、開啟與關閉操作
本文實例講述了php實現(xiàn)簡單的守護進程創(chuàng)建、開啟與關閉操作。分享給大家供大家參考,具體如下:
前提要安裝有pcntl擴展,可通過php -m查看是否安裝
<?php
class Daemon {
private $pidfile;
function __construct() {
$this->pidfile = dirname(__FILE__).'/daemontest.pid';
}
private function startDeamon() {
if (file_exists($this->pidfile)) {
echo "The file $this->pidfile exists.\n";
exit();
}
$pid = pcntl_fork();
if ($pid == -1) {
die('could not fork');
} else if ($pid) {
echo 'start ok';
exit($pid);
} else {
// we are the child
file_put_contents($this->pidfile, getmypid());
return getmypid();
}
}
private function start(){
$pid = $this->startDeamon();
while (true) {
file_put_contents(dirname(__FILE__).'/test.txt', date('Y-m-d H:i:s'), FILE_APPEND);
sleep(2);
}
}
private function stop(){
if (file_exists($this->pidfile)) {
$pid = file_get_contents($this->pidfile);
posix_kill($pid, 9);
unlink($this->pidfile);
}
}
public function run($argv) {
if($argv[1] == 'start') {
$this->start();
}else if($argv[1] == 'stop') {
$this->stop();
}else{
echo 'param error';
}
}
}
$deamon = new Daemon();
$deamon->run($argv);
啟動
php deamon.php start
關閉
php deamon.php stop
更多關于PHP相關內(nèi)容感興趣的讀者可查看本站專題:《PHP進程與線程操作技巧總結》、《PHP網(wǎng)絡編程技巧總結》、《PHP基本語法入門教程》、《PHP數(shù)組(Array)操作技巧大全》、《php字符串(string)用法總結》、《php+mysql數(shù)據(jù)庫操作入門教程》及《php常見數(shù)據(jù)庫操作技巧匯總》
希望本文所述對大家PHP程序設計有所幫助。
相關文章
PHP基于自定義函數(shù)實現(xiàn)的漢字轉拼音功能實例
這篇文章主要介紹了PHP基于自定義函數(shù)實現(xiàn)的漢字轉拼音功能,涉及php表單及字符串編碼轉換、遍歷等相關操作技巧,需要的朋友可以參考下2017-09-09
php使用fopen創(chuàng)建utf8編碼文件的方法
這篇文章主要介紹了php使用fopen創(chuàng)建utf8編碼文件的方法,是涉及編碼問題需要注意的一個技巧,需要的朋友可以參考下2014-10-10
PHP操作MongoDB實現(xiàn)增刪改查功能【附php7操作MongoDB方法】
這篇文章主要介紹了PHP操作MongoDB實現(xiàn)增刪改查功能,結合實例形式總結分析了php操作MongoDB的常用技巧,并附帶php7操作MongoDB方法,具有一定參考借鑒價值,需要的朋友可以參考下2018-04-04
PHP使用enqueue/amqp-lib實現(xiàn)rabbitmq任務處理
這篇文章主要為大家詳細介紹了PHP如何使用enqueue/amqp-lib實現(xiàn)rabbitmq任務處理,文中的示例代碼講解詳細,感興趣的小伙伴可以學習一下2024-03-03

