首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Nginx(6):nginx master 和 worker 之间的通信

pid; // 表示发送命令方在 ngx_processes 进程数组间的序号 ngx_int_t slot; // 通信的套接字句柄 ngx_fd_t fd;.../* 这里的socketpair()方法的主要作用是生成一对套接字流,用于主进程和子进程的通信, 这一对套接字会存储在ngx_processes[s].channel中,本质上这个字段是一个长度为...AF_UNIX表示当前使用的是UNIX文件形式的socket地址族SOCK_STREAM指定了当前套接字建立的通信方式是管道流, 并且这个管道流是双向的,即管道双方都可以进行读写操作第三个参数protocol...; } // FD_CLOEXEC表示当前指定的套接字管道在子进程中可以使用,但是在execl()执行的程序中不可使用 if (fcntl(ngx_processes[s]....cycle->log); return NGX_INVALID_PID; } // FD_CLOEXEC表示当前指定的套接字管道在子进程中可以使用,但是在execl()

91910
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    多个套接字可以绑定同一个端口吗

    、端口组合只能被一个套接字绑定,Linux 内核从 3.9 版本开始引入一个新的 socket 选项 SO_REUSEPORT,又称为 port sharding,允许多个套接字监听同一个IP 和端口组合...主进程执行 bind()、listen() 初始化套接字,然后 fork 新的子进程。在这些子进程中,通过 accept/epoll_wait 同一个套接字来进行请求处理,示意图如下所示。.../proc/your_pid/fd 命令可以查看主进程打开的所有 fd 文件,如果 pid 为 24735,执行的结果如下。...,0~2 分别是 stdin、stdout、stderr,fd 为 3 的描述符是 socket 套接字文件,fd 为 4 的是 epoll 的 fd。...:2222 套接字的 SYN 包到来时,会遍历这个哈希链表,查找得分最高的两个 socket,然后通过随机选择其中的一个。

    2.8K21

    为什么ib_logfile被覆盖Mysql还能正常运行!?

    TYPE:文件类型,如DIR、REG等,常见的文件类型: (0)REG:文件 (1)DIR:表示目录 (2)CHR:表示字符类型 (3)BLK:块设备类型 (4)UNIX: UNIX 域套接字 (5)...FIFO:先进先出 (FIFO) 队列 (6)IPv4:网际协议 (IP) 套接字 DEVICE:指定磁盘的名称 SIZE:文件的大小 NODE:索引节点(文件在磁盘上的标识) NAME:打开文件的确切名称...文件已经被删了,上面看到df是4和9,检查进程使用的fd链到哪了 [root@ecs /proc/23141/fd]# stat /proc/23141/fd/4 File: ‘/proc/23141.../23141/fd]# stat /proc/23141/fd/9 File: ‘/proc/23141/fd/9’ -> ‘/u01/database/data/ib_logfile1 (deleted...(stat看不到,删除的只能用lsof看) 所以数据实际是写入被删除的文件中的 3 如何恢复 停写后用文件句柄把数据捞回来,例如上图的ibdata cat /proc/23141/fd/10 > /u01

    52130

    Linux之lsof命令

    所以如传输控制协议 (TCP) 和用户数据报协议 (UDP) 套接字等,系统在后台都为该应用程序分配了一个文件描述符,无论这个文件的本质如何,该文件描述符为应用程序与基础操作系统之间的交互提供了通用接口...lsof输出各列信息的意义如下: COMMAND:进程的名称 PID:进程标识符 USER:进程所有者 FD:文件描述符,应用程序通过文件描述符识别该文件。...而CHR 和 BLK,分别表示字符和块设备;或者 UNIX、FIFO 和 IPv4,分别表示 UNIX 域套接字、先进先出 (FIFO) 队列和网际协议 (IP) 套接字。...大多数与 lsof 相关的信息都存储于以进程的 PID 命名的目录中,即 /proc/1234 中包含的是 PID 为 1234 的进程的信息。...因此我们可以在 /proc/1283/fd/2 (fd下的每个以数字命名的文件表示进程对应的文件描述符)中查看相应的信息,如下: # head -n 10 /proc/1283/fd/2 Aug 4

    1.4K30

    linux lsof命令查看文件占用进程

    所以如传输控制协议 (TCP) 和用户数据报协议 (UDP) 套接字等,系统在后台都为该应用程序分配了一个文件描述符,无论这个文件的本质如何,该文件描述符为应用程序与基础操作系统之间的交互提供了通用接口...:进程的名称 PID:进程标识符 USER:进程所有者 FD:文件描述符,应用程序通过文件描述符识别该文件。...而CHR 和 BLK,分别表示字符和块设备;或者 UNIX、FIFO 和 IPv4,分别表示 UNIX 域套接字、先进先出 (FIFO) 队列和网际协议 (IP) 套接字。...大多数与 lsof 相关的信息都存储于以进程的 PID 命名的目录中,即 /proc/1234 中包含的是 PID 为 1234 的进程的信息。...因此我们可以在 /proc/1283/fd/2 (fd下的每个以数字命名的文件表示进程对应的文件描述符)中查看相应的信息,如下: # head -n 10 /proc/1283/fd/2 Aug 4

    14.3K40

    Linux恢复误删文件的操作

    像传输控制协议(TCP)和用户数据报协议(UDP)套接字等,系统在后台都为该应用程序分配了一个文件描述符,无论这个文件的本质如何,该文件描述符为应用程序与基础操作系统之间的交互提供了通用接口。...大多数和lsof相关的信息都存储于以进程的PID命名的目录中,例如/proc/1234中包含的是PID为1234的进程的信息。...REG              253,8         38     1358 /home/oracle/test.txt (deleted) 我们进入/proc/PID(13213)/fd(1).../,看到1指向的就是这个被删除的文件, [oracle@app ~]$ cd /proc/13213/fd/ [oracle@app fd]$ ls -rlth total 0 lrwx------...,如果上述操作中,关闭cat指令,/proc中就找不到这个PID了。

    2.5K20

    实践解读CLOSE_WAIT和TIME_WAIT

    使用 ls /proc/3354/fd -l 命令查看,其中 3354是echo_server的pid: 0 -> /dev/pts/6 1 -> /dev/pts/6 2 -> /dev/pts/6...4其实就是我服务端监听端口打开的被动套接字; 5就是客户端建立连接到时候,分配给客户端的连接套接字。server程序只要给5这个fd写数据,就相当于返回数据给客户端。...客户端pid为74135。当然,我其实知道我是用telnet连接的,只是为了查pid的话,ps aux|grep telnet也可以。 注意:为了测试。我这里的echo_server是写的有问题的。...2.2 怎么避免客户端异常断开时的服务端CLOSE_WAIT? 有一个方法。比如我用了epoll,那么我监听客户端连接套接字(5)的EPOLLRDHUP这个事件。...命令:ls /proc/7678/fd -l 0 -> /dev/pts/6 1 -> /dev/pts/6 2 -> /dev/pts/6 3 -> anon_inode:[eventpoll] 4

    1.4K30

    Linux进程通信之Unix套接字(一)

    Linux进程通信之Unix套接字(一) 什么是套接字 所谓套接字(Socket),就是对网络中不同主机上的应用进程之间进行双向通信的端点的抽象。...从所处的地位来讲,套接字上联应用进程,下联网络协议栈,是应用程序通过网络协议进行通信的接口,是应用程序与网络协议栈进行交互的接口 以上来自百度(实际则就是一种连接) 支持的协议 AF_INET(IPV4...) AF_INET6(IPV6) AF_UNIX(本地通讯协议,一般用于进程通信,不需要经过网卡) 套接字类型 流套接字(SOCK_STREAM),提供一个顺序化的、可靠的、全双工的、基于连接的字节流。...TCP 协议即基于这种流式套接字。 数据报套接字(SOCK_DGRAM)即提供数据报文的支持。(无连接,不可靠、固定最大长度).UDP协议即基于这种数据报文套接字。...原始套接字(SOCK_RAW)即提供读取原始的网络协议。这种特殊的套接字可用于手工构建任意类型的协议。一般使用这个套接字来实现 ICMP 请求(例如 ping)。

    2.8K30

    深入理解linux惊群效应(超详细)

    为了简化处理,忽略后续的读写以及对接受返回的新的套接字的处理,直接断开连接。 那么,当新的连接到来时,是否每个阻塞在epoll_wait上的进程都会被唤醒呢?...,一样会成为瓶颈 (2)、cpu缓存行丢失套接字结构现象严重。...每一个线程拥有自己的服务器套接字,在服务器套接字上没有锁的竞争。 (2)、内核层面实现负载均衡 (3)、安全层面,监听同一个端口的套接字只能位于同一个用户下面。...热备份模式:一般而言,会将所有的reuseport同一个IP地址/端口的套接字挂在一个链表上,取第一个即可,工作的只有一个,其他的作为备份存在,如果该套接字挂了,它会被从链表删除,然后第二个便会成为第一个...,将结果对reuseport套接字数量取模,得到一个索引,该索引指示的数组位置对应的套接字便是工作套接字。

    30110

    离职前他分享了阿里的核心面试题库

    netstat用来查看系统当前系统网络状态信息,包括端口,连接情况等 netstat -atunlp,各参数含义如下: -t : 指明显示TCP端口 -u : 指明显示UDP端口 -l : 仅显示监听套接字...(LISTEN状态的套接字) -p : 显示进程标识符和程序名称,每一个套接字/端口都属于一个程序 -n : 不进行DNS解析 -a 显示所有连接的端口 2.怎么查看内存?...执行上一个背景指令的PID(后台运行的最后一个进程的进程ID号) $$ 这个程式的PID(脚本运行的当前进程ID号) $- 显示shell使用的当前选项,与set命令功能相同 5. shell随机产生...ss:可以用于转储套接字统计信息。...netstat:可以显示打开的套接字列表。 lsof:可以列出打开的文件。 fuser:可以列出那些打开了文件的进程的进程 ID。 nmap:是网络检测工具和端口扫描程序。

    63420

    Linux lsof 命令详解

    例如:传输控制协议 (TCP) 和用户数据报协议 (UDP) 套接字等,系统在后台都为该应用程序分配了一个文件描述符,无论这个文件的本质如何,该文件描述符为应用程序与基础操作系统之间的交互提供了通用接口...文件和目录分别称为 REG 和 DIR; 而CHR 和 BLK,分别表示字符和块设备;或者 UNIX、FIFO 和 IPv4,分别表示 UNIX 域套接字、先进先出 (FIFO) 队列,网际协议 (IP...) 套接字。...大多数与 lsof 相关的信息都存储于以进程的 PID 命名的目录中,即 /proc/1234 中包含的是 PID 为 1234 的进程的信息。...因此我们可以在 /proc/1283/fd/2 (fd下的每个以数字命名的文件表示进程对应的文件描述符)中查看相应的信息,如下: # head -n 10 /proc/1283/fd/2 Aug  4

    7.6K62

    【Nginx 源码学习】Nginx 架构设计与主流程分析

    pid; // 表示发送命令方在 ngx_processes 进程数组间的序号 ngx_int_t slot; // 通信的套接字句柄 ngx_fd_t...: typedef struct { ... // socketpair 创建的套接字对 ngx_socket_t channel[2]; }ngx_processes_t; ngx_pid_t.../* 这里的socketpair()方法的主要作用是生成一对套接字流,用于主进程和子进程的通信, 这一对套接字会存储在ngx_processes[s].channel中,本质上这个字段是一个长度为...; } // FD_CLOEXEC表示当前指定的套接字管道在子进程中可以使用,但是在execl()执行的程序中不可使用 if (fcntl(ngx_processes[s]....cycle->log); return NGX_INVALID_PID; } // FD_CLOEXEC表示当前指定的套接字管道在子进程中可以使用,但是在execl()

    1.2K20

    如何查看linux中文件打开情况?

    linux下有哪些文件 在介绍lsof命令之前,先简单说一下,linux主要有哪些文件: 普通文件 目录 符号链接 面向块的设备文件 面向字符的设备文件 管道和命名管道 套接字 以上各类文件类型不多做详细介绍...$ lsof(这里选取一条记录显示) COMMAND PID USER FD TYPE DEVICE SIZE/OFF...,我们知道每个进程在/proc下都有文件描述符打开的记录: $ ls -l /proc/993/fd lr-x------ 1 root root 64 3月 5 18:30 0 -> /dev...假设有一个循环打印字符的hello程序: $ lsof -c hello COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME hello...#列出除进程id为1的进程以外打开的文件 lsof -u ^root #列出除root用户以外打开的文件 总结 以上介绍基于一个条件,实际上多个条件可以组合,例如列出进程id为1的进程打开的tcp套接字文件

    11.7K10
    领券