workerman笔记-php创建守护进程
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了workerman笔记-php创建守护进程,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1605字,纯文字阅读大概需要3分钟。
内容图文
![workerman笔记-php创建守护进程](/upload/InfoBanner/zyjiaocheng/159/d48a218379be4479986624046d4d4bde.jpg)
使用函数
pcntl_fork();//创建子进程
posix_setsid();//设置当前进程为进程组长
posix_getpid();//获取进程id
例子
workerman中将进程
/**
* Run as deamon mode.
*
* @throws Exception
*/
protected static function daemonize()
{
if (!self::$daemonize) {
return;
}
/**
* 重设文件权限掩码
* 子进程从父进程继承了文件权限
* 若子进程不涉及到文件创建,可取消
*/
umask(0);
$pid = pcntl_fork();//创建子进程
if (-1 === $pid) {
throw new Exception('fork fail');
} elseif ($pid > 0) {
exit(0); //父进程退出
}
/**
* 更改子进程为进程组长
* 使子进程摆脱父进程控制
*/
if (-1 === posix_setsid()) {
throw new Exception("setsid fail");
}
// Fork again avoid SVR4 system regain the control of terminal.
$pid = pcntl_fork();
if (-1 === $pid) {
throw new Exception("fork fail");
} elseif (0 !== $pid) {
exit(0);
}
}
其他说明
基本概念
守护进程:Linux中的后台服务进程。它是一个生存期较长的进程,通常独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件。守护进程常常在系统引导装入时启动,在系统关闭时终止。
进程组:是一个或多个进程的集合。进程组有进程组ID来唯一标识。除了进程号(PID)之外,进程组ID也是一个进程的必备属性。每个进程组都有一个组长进程,其组长进程的进程号等于进程组ID。且该进程组ID不会因组长进程的退出而受到影响。
会话周期:会话期是一个或多个进程组的集合。通常,一个会话开始于用户登录,终止于用户退出,在此期间该用户运行的所有进程都属于这个会话期。
创建流程
fork子进程,父进程退出
更改子进程为组长进程
改变当前目录为根目录(chdir())
重设文件权限掩码
关闭文件描述符
守护进程退出,处理SIGCHLD信号
信号处理
//TODO
参考资料
PHP实现守护进程
以上就介绍了workerman笔记-php创建守护进程,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。
内容总结
以上是互联网集市为您收集整理的workerman笔记-php创建守护进程全部内容,希望文章能够帮你解决workerman笔记-php创建守护进程所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。