Linux进程通信之管道通信

  • 北溟有鱼QAQ(LuffyQAQ)
  • 2021-07-23 17:19:00
  • PHP
  • php linux
父子进程管道通信 Linux进程通信的几种方式 管道通信 中断信号 共享内存、消息队列 Unix Socket我们PHP中所使用的workman、swoole 或者其他语言当中的进行通信也是无非以上的几种方式 阻塞代码```php$file = 'pipe_file';//检测是否存在管道文件if(!posix_access($file,POSIX_F_OK)){ //创建管道文件 if(posix_mkfifo($file
阅读全文

php如何编写守护进程

  • 北溟有鱼QAQ(LuffyQAQ)
  • 2021-07-02 15:58:12
  • PHP
  • php linux
什么是守护进程?守护进程是指在后台运行的程序,用于执行一些特定的任务,比如我们常见的apache、nginx、mysql等等,就是启动了守护进程,接收客户端的连接并处理相应的请求 PHP编写守护进程的条件1. 设置umask(0)文件创建屏蔽字,也就是文件的特殊权限设置()2. 将进程设置为会话首进程,也就是开启两个进程,父进程退出,子进程设置setsid()3. 将文件的目录设置为根目录4. 关闭文件的标准输入、标准输出、标准错误,也就是当程序开启守护进程后,不在接收控制终端的
阅读全文

什么是会话

  • 北溟有鱼QAQ(LuffyQAQ)
  • 2021-06-07 15:48:11
  • PHP
  • php
PHP中的会话概念会话就是一个进程组,或是多个进程组的集合 一个会话可以至少有一个控制终端 一个会话至少有一个前台进程组,其它就是后台进程组 一个会话如果连接了一个控制终端,就叫控制进程。因为这个会话首进程/bin/bash是连接控制终端。又因为连接了终端,所以在终端的输入会影响前台进程组,比如 ctrl+c 发送信号退出进程 技术点1、使用 posix_setsid()函数设置当前进程为会话首进程2、当执行php xxx.php 时,默认系统会把当前的进程设
阅读全文

PHP中pcntl_sigprocmask的作用是什么

  • 北溟有鱼QAQ(LuffyQAQ)
  • 2021-04-12 16:23:28
  • PHP
  • php linux
信号屏蔽字(设置阻塞信号) 什么是信号集?信号集也就是信号的集合。通俗来讲就是一堆信号,而信号屏蔽字也就是屏蔽信号的集合 用途?当你编写程序,想要屏蔽某个或多个信号的时候,那么我们就会用到PHP扩展中的pcntl_sigprocmask函数,这个函数就是用于设置信号屏蔽字的函数,第一个参数就是可以是否设置屏蔽信号字,SIG_BLOCK 是设置,SIG_UNBLOCK是移除不设置第二个参数就是你要设置屏蔽的信号集合数组,第三个参数是返回之前设置屏蔽的信号集数组 de
阅读全文

如何用PHP编写一个信号中断处理程序

  • 北溟有鱼QAQ(LuffyQAQ)
  • 2021-04-10 11:07:27
  • PHP
  • php linux
如何用PHP编写一个信号中断处理程序 什么是中断信号? 从字面意义来讲就是指可以使软件中断运行的信号。中断信号处理程序完程序后,就会返回继续执行主程序。具体概念请自行百度 有哪些中断信号? 在linux系统上 使用 ` kill l ` 命令 查看系统的中断信号,其中 31以下的则是比较常用的信号 比如:SIGKILL 杀死进程 SIGINT 中断程序(也就是终端中按ctrl+c),SIGUSR1 用户自定义信号 等等信号,具体信号可自己百度了解
阅读全文

pcntl_exec函数的作用以及用法

  • 北溟有鱼QAQ(LuffyQAQ)
  • 2021-03-10 17:08:12
  • PHP
  • php linux
pcntl_exec()函数 用途: 可能我们在编写php代码的时候会很少用到或者见到这个函数,但这个函数一般是用在运行脚本文件的时候才会使用,比如shell脚本,或者运行其他语言的脚本等等 概念: 是在当前进程空间执行指定程序。 使用: 根据文档,我们也能看到,他的第一个参数是一个可执行文件,或者解释器文件,第二个参数是一个数组,用来传递参数,当第一个参数是一个可执行文件的路径是,第二个参数的第一个数据则要传递你编写好的程序的路径,第三个参
阅读全文

如何编写一个PHP解释器文件

  • 北溟有鱼QAQ(LuffyQAQ)
  • 2021-02-20 16:09:47
  • PHP
  • php linux
什么是解释器 概念解释器文件是一种文本文件,它第一行的形式为:`! pathname 指的是可选参数。 PHP脚本执行程序1. 在linux中,我们来执行php程序,一般是使用命令`php xxxx.php` 这样来执行,接下来我们编写这样一个程序运行一下,而下面这个图片则是在linux下运行php脚本的过程 解释器文件上面介绍了解释器文件的概念以及书写形式,接下来咱们编写一个php解释器文件1、查找linux中,你安装的php可执行文件,如果是编译安装的相
阅读全文

Linux下PHP运行的过程

  • 北溟有鱼QAQ(LuffyQAQ)
  • 2021-01-27 15:58:35
  • PHP
  • php linux
Linux下PHP执行的流程在查看PHP执行过程前,我们要学习一个linux命令,也就是strace 命令 strace 命令介绍strace是Linux环境下的一款程序调试工具,用来监察一个应用程序所使用的系统调用及它所接收的系统信息 strace 参数有哪些 c 统计每一系统调用的所执行的时间,次数和出错的次数等. d 输出strace关于标准错误的调试信息. f 跟踪由fork调用所产生的子进程. ff 如果提供o filename,则所有进程的跟踪结果输出到
阅读全文

你心中最高大上最牛X的技术到底是什么

高以下为基,贵以贱为本互联网技术的核心根基就是TCP/IP,TCP/IP的实现依赖于Linux socket API【我们的项目大部分运行在上面】没有它们各种高大上牛逼的技术就无从建立起来。而这根基对大家所用的java,go,py,php,c,c++,nodejs...都是一样的,只不过是基于Linux api做了各种各样的封装百家争鸣,百花齐放,跟易经里的阴阳构成64卦一样,当你刚开始撸程序时,可能并不会觉得基础的重要性,甚至可能几年内一直是框架crud boy,你并不会察觉到基础核心L
阅读全文

Easyswoole之双机热备

1. 介绍 文章主要介绍,EasySwoole使用双机热备思路实现代码不中断部署。 2. 学习案例 1. 先部署`9501`服务 2. 单起一个进程,定时轮询Git分支是否有新版本发布 3. 如有新版本发布,clone一份 4. composer update 更新库 5. 启动`9502`服务 6 更改nginx配置为`9502`并重启 只要有新版本发布,就轮询上面那几个步骤`整个过程的简单架构图` 3. 提前需要了解的知识点
阅读全文