php写守护进程 在后台运行
实例一,如test.php 内容如下:
#!/usr/bin/php
<?php
set_time_limit(0);
while(1)
{
$fp = fopen("/home/wwwroot/default/test/auto_".time(),"w");
fwrite($fp,"xgl");
fclose($fp);
sleep(30);
}
?>
给一个执行权限
chmod +x ./test.php
在执行 ./test.php 脚本,他就会在后台每个30秒生成一个文件
用ps -ef|grep test.php 可以查看到改进程的id
可以使用kill -9 进程号 可以杀死改进程
实例二:
绑定本机的 9006端口
如test1.php 内容如下
#!/usr/bin/php
<?php
set_time_limit(0);
ob_implicit_flush();
$address = "10.0.12.115";
$port = 9009;
if(($sock = socket_create(AF_INET,SOCK_STREAM,SOL_TCP))<0)
{
echo "socket_create() failed:".socket_strerror($sock);;
}
if(($ret = socket_bind($sock,$address,$port))<0)
{
echo "socket_bind failed:".socket_strerror($ret);
}
if(($ret = socket_listen($sock,5))<0)
{
echo "socket_listen faild:" . socket_strerror($ret);
}
while(1)
{
if(($msgsock = socket_accept($sock))<0)
{
echo "socket_accept faild:".socket_strerror($msgsock);
break;
}
$msg ="welcome to php test server\r\n";
socket_write($msgsock,$msg,strlen($msg));
while(1)
{
if(false ===($buf = socket_read($msgsock,2048, PHP_NORMAL_READ)))
{
echo "socket_read() failed :".socket_strerror($ret);
break 2;
}
$buf=trim($buf);
if($buf=="quit")
{
break;
}
if($buf=="shutdown")
{
socket_close($msgsock);
break 2;
}
if($buf=="help")
{
$msg ="type quit ,exit \r\n to shutdown,";
socket_write($msgsock,$msg,strlen($msg));
continue;
}
}
socket_close($msgsock);
}
socket_close($sock);
浙公网安备 33010602011771号