数码资讯
PHP扩展器实现了守护进程。
选购提示
关注价格、性能、续航、售后和真实使用场景,理性比较后再下单。
一般的服务器程序运行在系统后台,这是从常见的交互式命令行程序非常不同。有这个功能的守护进程,调用这个函数允许当前进程成为从终端守护进程,和男人的守护进程的具体内容。没有这种功能的PHP现在,当然,如果你有兴趣,你可以写PHP扩展功能的实现。
实现PHP命令行程序的守护进程有2种方法:
1。使用使用nohup
复制代码代码如下所示:
使用nohup PHP myprog.php > log.txt
有一个守护进程。
PHP myprog.php是分开进行,当按下Ctrl + C,它将中断程序的执行,杀死当前进程和子进程。
PHP myprog.php,这样的执行程序,也就是在后台转回来,实际上是依赖于终端,而过程会死当用户退出终端。
两。使用PHP代码来实现
daemonize()函数
{
PID = pcntl_fork(美元);
如果($ = - 1)
{
模具()叉(1)失败!;
}
($ PID > 0)
{
由用户退出发起的进程
出口(0);
}
A与新的会话终端不同于终端脱离。
posix_setsid();
PID = pcntl_fork(美元);
如果($ = - 1)
{
模具()叉(2)失败!;
}
($ PID > 0)
{
父进程/子进程退出,剩下的进程最终独立。
出口(0);
}
}
Daemonize();
睡眠(1000);
通过上面的代码,可以实现守护进程。当你的PHP程序需要转为后台运行,你只需要调用一个函数daemonize(包装)。
注意:没有标准输入和输出重定向。
以上是本文的全部内容,希望大家能喜欢。
实现PHP命令行程序的守护进程有2种方法:
1。使用使用nohup
复制代码代码如下所示:
使用nohup PHP myprog.php > log.txt
有一个守护进程。
PHP myprog.php是分开进行,当按下Ctrl + C,它将中断程序的执行,杀死当前进程和子进程。
PHP myprog.php,这样的执行程序,也就是在后台转回来,实际上是依赖于终端,而过程会死当用户退出终端。
两。使用PHP代码来实现
daemonize()函数
{
PID = pcntl_fork(美元);
如果($ = - 1)
{
模具()叉(1)失败!;
}
($ PID > 0)
{
由用户退出发起的进程
出口(0);
}
A与新的会话终端不同于终端脱离。
posix_setsid();
PID = pcntl_fork(美元);
如果($ = - 1)
{
模具()叉(2)失败!;
}
($ PID > 0)
{
父进程/子进程退出,剩下的进程最终独立。
出口(0);
}
}
Daemonize();
睡眠(1000);
通过上面的代码,可以实现守护进程。当你的PHP程序需要转为后台运行,你只需要调用一个函数daemonize(包装)。
注意:没有标准输入和输出重定向。
以上是本文的全部内容,希望大家能喜欢。
声明:本文内容用于数码产品信息整理与选购参考,具体价格、库存、售后政策以官方渠道和电商页面实时信息为准。