FPM 架構下執行一個 PHP 檔案後 nginx 如何與 PHP-FPM 程式管理器進行互動的 [硬核跟蹤底層資料互動詳細過程][非 CSDN 非百度瞎複製炒冷飯哦]

勺顛顛發表於2020-03-07

PHP直譯器騷操作

當我們要擼上LNMP或是LAMP環境時【不用具體細說了吧】,我們得裝上nginx/apache+mysql【其它資料庫也行】+PHP
一般來說PHP安裝好【習慣原始碼安裝了,yum或是docker或是其它騷方式安裝的朋友自行查詢】以後,目錄是這樣的【php.net官方手冊有安裝教程和說明,所以有空多讀讀php.net真的】

FPM架構下執行一個php檔案後nginx如何與PHP-FPM程式管理器進行互動的【硬核跟蹤資料互動】
然後bin目錄有個PHP解析器【就是解析我們們擼的PHP原始碼】
FPM 架構下執行一個 PHP 檔案後 nginx 如何與 PHP-FPM 程式管理器進行互動的 [硬核跟蹤資料互動]

php直譯器執行示例

FPM 架構下執行一個 PHP 檔案後 nginx 如何與 PHP-FPM 程式管理器進行互動的 [硬核跟蹤資料互動]

解釋一下程式碼

FPM 架構下執行一個 PHP 檔案後 nginx 如何與 PHP-FPM 程式管理器進行互動的 [硬核跟蹤資料互動]
是的,列印123

然後你覺得這有啥好說的?這麼so easy,不不不,大佬,真不是這樣的,下面我們們來玩玩php - r “echo 123;”後這個直譯器是怎麼處理的,然後又是怎麼列印出123的,這個時候你就會說,切,你不會去讀PHP直譯器原始碼啊?【來來你來讀https://github.com/php/php-src ,我渣渣不會^_^】

下面我們們執行:
strace ./php -r “echo 123;”
然後列印出這玩意【截圖,老實說有些人截圖特別小氣的,真的^_^】
FPM 架構下執行一個 PHP 檔案後 nginx 如何與 PHP-FPM 程式管理器進行互動的 [硬核跟蹤資料互動]
PS:strace 工具請百度【本人不在此細說,一般工作幾年的大佬都懂,我就不在賣弄了】

strace ./php -r "echo 123;"
execve("./php", ["./php", "-r", "echo 123;"], [/* 26 vars */]) = 0   
//這裡我們得了解一下shell執行命令的過程,你登入系統後,你就是通過shell這個工具來和核心互動的,所以當然是在shell下輸入 strace ./php -r "echo 123;" ,然後呢簡單它會fork一個程式,同時呼叫exec系列函式【有哪些函式,請百度或是google嘛,年輕人】  
//shell 有內建命令和外部的應用了,具體可以瞭解shell程式設計嘛 
//./php 是執行指令碼的路徑
//後面就是傳遞給指令碼的引數啦
//自己用php寫個指令碼<?php print_r($argv); ?>然後 在控制檯執行它 看看效果 
//其它擼過半點c的知道int main(int arg,char *argv[]) 啦
//所以shell命令格式就是這樣騷操作的:command 選項  選項引數   引數 
//command 後面的引數就是$argv/char *argv[]接受的  
//所以你就知道在shell 執行命令,給相關引數就是為了傳遞引數給程式做處理的【解釋這麼多好累】   
//下面呢就是這個解析器執行的動態過程【程式執行的動態流程】
//有必要搞清楚程式和程式的區別  
//程式=指令的集合=靜態的檔案儲存在磁碟上  比如我們們擼的php程式碼或是其它程式碼 
//程式=我們們run它之後,它就是程式了【程式的例項】,程式執行時肯定是從第1句執行到最後一句結束【當然啦有可能中間就結束了,或是被其它中斷訊號搞掛了,或是遇到exit了,或是執行錯誤提前掛了,有興趣可以瞭解程式記憶體模型和執行流程】
//程式在執行的過程中呢是不是斷的進行系統呼叫system call的,就是從使用者空間跑到核心空間執行再返回
brk(0)                                  = 0x1d61000
//mmap 系統呼叫  功能就是搞個匿名記憶體對映【有興趣可以瞭解一下PHP程式間通訊,沒有興趣就算了】
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f2fdddd2000
//這些暫時不分析【其實擼過搞workerman開發或是swoole開發的人都懂,本人不在解釋了,我們往後瞧瞧就行了,中間這一大堆你看了也頭疼】
access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=40380, ...}) = 0
mmap(NULL, 40380, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f2fdddc8000
close(3)                                = 0
open("/lib64/libcrypt.so.1", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0P\16\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=41080, ...}) = 0
mmap(NULL, 2318912, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f2fdd97b000
mprotect(0x7f2fdd983000, 2093056, PROT_NONE) = 0
mmap(0x7f2fddb82000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x7000) = 0x7f2fddb82000
mmap(0x7f2fddb84000, 184896, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f2fddb84000
close(3)                                = 0
open("/lib64/libz.so.1", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0p!\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=90664, ...}) = 0
mmap(NULL, 2183688, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f2fdd765000
mprotect(0x7f2fdd77a000, 2093056, PROT_NONE) = 0
mmap(0x7f2fdd979000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x14000) = 0x7f2fdd979000
close(3)                                = 0
open("/lib64/libresolv.so.2", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\3209\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=111080, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f2fdddc7000
mmap(NULL, 2202264, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f2fdd54b000
mprotect(0x7f2fdd561000, 2097152, PROT_NONE) = 0
mmap(0x7f2fdd761000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x16000) = 0x7f2fdd761000
mmap(0x7f2fdd763000, 6808, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f2fdd763000
close(3)                                = 0
open("/lib64/librt.so.1", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0P\"\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=44448, ...}) = 0
mmap(NULL, 2128952, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f2fdd343000
mprotect(0x7f2fdd34a000, 2093056, PROT_NONE) = 0
mmap(0x7f2fdd549000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x6000) = 0x7f2fdd549000
close(3)                                = 0
open("/lib64/libpng15.so.15", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0PO\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=179296, ...}) = 0
mmap(NULL, 2270248, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f2fdd118000
mprotect(0x7f2fdd141000, 2097152, PROT_NONE) = 0
mmap(0x7f2fdd341000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x29000) = 0x7f2fdd341000
close(3)                                = 0
open("/lib64/libm.so.6", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0pS\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=1139680, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f2fdddc6000
mmap(NULL, 3150136, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f2fdce16000
mprotect(0x7f2fdcf17000, 2093056, PROT_NONE) = 0
mmap(0x7f2fdd116000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x100000) = 0x7f2fdd116000
close(3)                                = 0
open("/lib64/libdl.so.2", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0`\16\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=19776, ...}) = 0
mmap(NULL, 2109744, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f2fdcc12000
mprotect(0x7f2fdcc14000, 2097152, PROT_NONE) = 0
mmap(0x7f2fdce14000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2000) = 0x7f2fdce14000
close(3)                                = 0
open("/lib64/libnsl.so.1", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\240@\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=113584, ...}) = 0
mmap(NULL, 2198200, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f2fdc9f9000
mprotect(0x7f2fdca0f000, 2093056, PROT_NONE) = 0
mmap(0x7f2fdcc0e000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x15000) = 0x7f2fdcc0e000
mmap(0x7f2fdcc10000, 6840, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f2fdcc10000
close(3)                                = 0
open("/lib64/libxml2.so.2", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0 \351\2\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=1509376, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f2fdddc5000
mmap(NULL, 3575896, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f2fdc68f000
mprotect(0x7f2fdc7ee000, 2093056, PROT_NONE) = 0
mmap(0x7f2fdc9ed000, 40960, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x15e000) = 0x7f2fdc9ed000
mmap(0x7f2fdc9f7000, 4184, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f2fdc9f7000
close(3)                                = 0
open("/lib64/libssl.so.10", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\260\253\1\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=470336, ...}) = 0
mmap(NULL, 2560784, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f2fdc41d000
mprotect(0x7f2fdc484000, 2097152, PROT_NONE) = 0
mmap(0x7f2fdc684000, 45056, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x67000) = 0x7f2fdc684000
close(3)                                = 0
open("/lib64/libcrypto.so.10", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\0\317\6\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=2512448, ...}) = 0
mmap(NULL, 4588360, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f2fdbfbc000
mprotect(0x7f2fdc1f0000, 2097152, PROT_NONE) = 0
mmap(0x7f2fdc3f0000, 167936, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x234000) = 0x7f2fdc3f0000
mmap(0x7f2fdc419000, 13128, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f2fdc419000
close(3)                                = 0
open("/lib64/libcurl.so.4", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\0\242\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=435120, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f2fdddc4000
mmap(NULL, 2523432, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f2fdbd53000
mprotect(0x7f2fdbdb8000, 2097152, PROT_NONE) = 0
mmap(0x7f2fdbfb8000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x65000) = 0x7f2fdbfb8000
mmap(0x7f2fdbfbb000, 296, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f2fdbfbb000
close(3)                                = 0
open("/lib64/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\20\35\2\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=2127336, ...}) = 0
mmap(NULL, 3940800, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f2fdb990000
mprotect(0x7f2fdbb48000, 2097152, PROT_NONE) = 0
mmap(0x7f2fdbd48000, 24576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1b8000) = 0x7f2fdbd48000
mmap(0x7f2fdbd4e000, 16832, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f2fdbd4e000
close(3)                                = 0
open("/lib64/libfreebl3.so", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\240\v\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=11384, ...}) = 0
mmap(NULL, 2105536, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f2fdb78d000
mprotect(0x7f2fdb78f000, 2093056, PROT_NONE) = 0
mmap(0x7f2fdb98e000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1000) = 0x7f2fdb98e000
close(3)                                = 0
open("/lib64/libpthread.so.0", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\0m\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=144792, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f2fdddc3000
mmap(NULL, 2208904, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f2fdb571000
mprotect(0x7f2fdb588000, 2093056, PROT_NONE) = 0
mmap(0x7f2fdb787000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x16000) = 0x7f2fdb787000
mmap(0x7f2fdb789000, 13448, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f2fdb789000
close(3)                                = 0
open("/lib64/liblzma.so.5", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\2000\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=157424, ...}) = 0
mmap(NULL, 2249352, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f2fdb34b000
mprotect(0x7f2fdb370000, 2093056, PROT_NONE) = 0
mmap(0x7f2fdb56f000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x24000) = 0x7f2fdb56f000
close(3)                                = 0
open("/lib64/libgssapi_krb5.so.2", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0P\306\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=320768, ...}) = 0
mmap(NULL, 2410688, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f2fdb0fe000
mprotect(0x7f2fdb148000, 2097152, PROT_NONE) = 0
mmap(0x7f2fdb348000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x4a000) = 0x7f2fdb348000
close(3)                                = 0
open("/lib64/libkrb5.so.3", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\20Z\2\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=963504, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f2fdddc2000
mmap(NULL, 3045888, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f2fdae16000
mprotect(0x7f2fdaeee000, 2093056, PROT_NONE) = 0
mmap(0x7f2fdb0ed000, 69632, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xd7000) = 0x7f2fdb0ed000
close(3)                                = 0
open("/lib64/libcom_err.so.2", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0p\25\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=15848, ...}) = 0
mmap(NULL, 2109928, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f2fdac12000
mprotect(0x7f2fdac15000, 2093056, PROT_NONE) = 0
mmap(0x7f2fdae14000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2000) = 0x7f2fdae14000
close(3)                                = 0
open("/lib64/libk5crypto.so.3", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\300H\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=210768, ...}) = 0
mmap(NULL, 2302680, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f2fda9df000
mprotect(0x7f2fdaa10000, 2093056, PROT_NONE) = 0
mmap(0x7f2fdac0f000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x30000) = 0x7f2fdac0f000
close(3)                                = 0
open("/lib64/libidn.so.11", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\0000\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=208920, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f2fdddc1000
mmap(NULL, 2302416, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f2fda7ac000
mprotect(0x7f2fda7de000, 2093056, PROT_NONE) = 0
mmap(0x7f2fda9dd000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x31000) = 0x7f2fda9dd000
close(3)                                = 0
open("/lib64/libssh2.so.1", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\320T\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=174088, ...}) = 0
mmap(NULL, 2266784, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f2fda582000
mprotect(0x7f2fda5aa000, 2097152, PROT_NONE) = 0
mmap(0x7f2fda7aa000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x28000) = 0x7f2fda7aa000
close(3)                                = 0
open("/lib64/libssl3.so", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\20\276\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=315072, ...}) = 0
mmap(NULL, 2406216, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f2fda336000
mprotect(0x7f2fda37d000, 2093056, PROT_NONE) = 0
mmap(0x7f2fda57c000, 20480, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x46000) = 0x7f2fda57c000
mmap(0x7f2fda581000, 1864, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f2fda581000
close(3)                                = 0
open("/lib64/libsmime3.so", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\260\222\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=164040, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f2fdddc0000
mmap(NULL, 2255608, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f2fda10f000
mprotect(0x7f2fda133000, 2093056, PROT_NONE) = 0
mmap(0x7f2fda332000, 16384, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x23000) = 0x7f2fda332000
close(3)                                = 0
open("/lib64/libnss3.so", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\0\226\1\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=1236800, ...}) = 0
mmap(NULL, 3315176, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f2fd9de5000
mprotect(0x7f2fd9f06000, 2097152, PROT_NONE) = 0
mmap(0x7f2fda106000, 28672, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x121000) = 0x7f2fda106000
mmap(0x7f2fda10d000, 5608, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f2fda10d000
close(3)                                = 0
open("/lib64/libnssutil3.so", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0@\303\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=186216, ...}) = 0
mmap(NULL, 2280192, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f2fd9bb8000
mprotect(0x7f2fd9bde000, 2093056, PROT_NONE) = 0
mmap(0x7f2fd9ddd000, 32768, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x25000) = 0x7f2fd9ddd000
close(3)                                = 0
open("/lib64/libplds4.so", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\20\17\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=15744, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f2fdddbf000
mmap(NULL, 2109728, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f2fd99b4000
mprotect(0x7f2fd99b7000, 2093056, PROT_NONE) = 0
mmap(0x7f2fd9bb6000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2000) = 0x7f2fd9bb6000
close(3)                                = 0
open("/lib64/libplc4.so", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\20\25\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=20048, ...}) = 0
mmap(NULL, 2113936, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f2fd97af000
mprotect(0x7f2fd97b3000, 2093056, PROT_NONE) = 0
mmap(0x7f2fd99b2000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x3000) = 0x7f2fd99b2000
close(3)                                = 0
open("/lib64/libnspr4.so", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\240\314\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=251784, ...}) = 0
mmap(NULL, 2350400, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f2fd9571000
mprotect(0x7f2fd95ab000, 2093056, PROT_NONE) = 0
mmap(0x7f2fd97aa000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x39000) = 0x7f2fd97aa000
mmap(0x7f2fd97ad000, 7488, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f2fd97ad000
close(3)                                = 0
open("/lib64/liblber-2.4.so.2", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\3206\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=61872, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f2fdddbe000
mmap(NULL, 2154984, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f2fd9362000
mprotect(0x7f2fd9370000, 2093056, PROT_NONE) = 0
mmap(0x7f2fd956f000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xd000) = 0x7f2fd956f000
close(3)                                = 0
open("/lib64/libldap-2.4.so.2", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\0\365\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=344280, ...}) = 0
mmap(NULL, 2434416, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f2fd910f000
mprotect(0x7f2fd915f000, 2093056, PROT_NONE) = 0
mmap(0x7f2fd935e000, 16384, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x4f000) = 0x7f2fd935e000
close(3)                                = 0
open("/lib64/libkrb5support.so.0", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\2208\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=58728, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f2fdddbd000
mmap(NULL, 2152072, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f2fd8f01000
mprotect(0x7f2fd8f0e000, 2093056, PROT_NONE) = 0
mmap(0x7f2fd910d000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xc000) = 0x7f2fd910d000
close(3)                                = 0
open("/lib64/libkeyutils.so.1", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\260\25\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=15688, ...}) = 0
mmap(NULL, 2109720, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f2fd8cfd000
mprotect(0x7f2fd8d00000, 2093056, PROT_NONE) = 0
mmap(0x7f2fd8eff000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2000) = 0x7f2fd8eff000
close(3)                                = 0
open("/lib64/libsasl2.so.3", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0`K\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=121296, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f2fdddbc000
mmap(NULL, 2213960, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f2fd8ae0000
mprotect(0x7f2fd8afc000, 2093056, PROT_NONE) = 0
mmap(0x7f2fd8cfb000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1b000) = 0x7f2fd8cfb000
close(3)                                = 0
open("/lib64/libselinux.so.1", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\300j\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=155744, ...}) = 0
mmap(NULL, 2255216, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f2fd88b9000
mprotect(0x7f2fd88dd000, 2093056, PROT_NONE) = 0
mmap(0x7f2fd8adc000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x23000) = 0x7f2fd8adc000
mmap(0x7f2fd8ade000, 6512, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f2fd8ade000
close(3)                                = 0
open("/lib64/libpcre.so.1", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\360\25\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=402384, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f2fdddbb000
mmap(NULL, 2494984, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f2fd8657000
mprotect(0x7f2fd86b7000, 2097152, PROT_NONE) = 0
mmap(0x7f2fd88b7000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x60000) = 0x7f2fd88b7000
close(3)                                = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f2fdddba000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f2fdddb9000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f2fdddb8000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f2fdddb7000
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f2fdddb5000
arch_prctl(ARCH_SET_FS, 0x7f2fdddb5840) = 0
mprotect(0x7f2fdbd48000, 16384, PROT_READ) = 0
mprotect(0x7f2fdb787000, 4096, PROT_READ) = 0
mprotect(0x7f2fd88b7000, 4096, PROT_READ) = 0
mprotect(0x7f2fdce14000, 4096, PROT_READ) = 0
mprotect(0x7f2fd8adc000, 4096, PROT_READ) = 0
mprotect(0x7f2fdb98e000, 4096, PROT_READ) = 0
mprotect(0x7f2fddb82000, 4096, PROT_READ) = 0
mprotect(0x7f2fdd761000, 4096, PROT_READ) = 0
mprotect(0x7f2fd8cfb000, 4096, PROT_READ) = 0
mprotect(0x7f2fd8eff000, 4096, PROT_READ) = 0
mprotect(0x7f2fd910d000, 4096, PROT_READ) = 0
mprotect(0x7f2fdd979000, 4096, PROT_READ) = 0
mprotect(0x7f2fdd549000, 4096, PROT_READ) = 0
mprotect(0x7f2fd97aa000, 4096, PROT_READ) = 0
mprotect(0x7f2fd9bb6000, 4096, PROT_READ) = 0
mprotect(0x7f2fd99b2000, 4096, PROT_READ) = 0
mprotect(0x7f2fd9ddd000, 28672, PROT_READ) = 0
mprotect(0x7f2fda106000, 20480, PROT_READ) = 0
mprotect(0x7f2fda57c000, 16384, PROT_READ) = 0
mprotect(0x7f2fda332000, 12288, PROT_READ) = 0
mprotect(0x7f2fd956f000, 4096, PROT_READ) = 0
stat("/etc/sysconfig/64bit_strstr_via_64bit_strstr_sse2_unaligned", 0x7ffca19cb170) = -1 ENOENT (No such file or directory)
mprotect(0x7f2fd935e000, 12288, PROT_READ) = 0
mprotect(0x7f2fdc3f0000, 114688, PROT_READ) = 0
mprotect(0x7f2fdae14000, 4096, PROT_READ) = 0
mprotect(0x7f2fdac0f000, 8192, PROT_READ) = 0
mprotect(0x7f2fdb0ed000, 57344, PROT_READ) = 0
mprotect(0x7f2fdb348000, 4096, PROT_READ) = 0
mprotect(0x7f2fdc684000, 16384, PROT_READ) = 0
mprotect(0x7f2fda7aa000, 4096, PROT_READ) = 0
mprotect(0x7f2fda9dd000, 4096, PROT_READ) = 0
mprotect(0x7f2fdb56f000, 4096, PROT_READ) = 0
mprotect(0x7f2fdbfb8000, 8192, PROT_READ) = 0
mprotect(0x7f2fdd116000, 4096, PROT_READ) = 0
mprotect(0x7f2fdc9ed000, 32768, PROT_READ) = 0
mprotect(0x7f2fdcc0e000, 4096, PROT_READ) = 0
mprotect(0x7f2fdd341000, 4096, PROT_READ) = 0
mprotect(0xdf3000, 741376, PROT_READ)   = 0
mprotect(0x7f2fdddd3000, 4096, PROT_READ) = 0
munmap(0x7f2fdddc8000, 40380)           = 0
set_tid_address(0x7f2fdddb5b10)         = 21621
set_robust_list(0x7f2fdddb5b20, 24)     = 0
rt_sigaction(SIGRTMIN, {0x7f2fdb5777e0, [], SA_RESTORER|SA_SIGINFO, 0x7f2fdb5805e0}, NULL, 8) = 0
rt_sigaction(SIGRT_1, {0x7f2fdb577870, [], SA_RESTORER|SA_RESTART|SA_SIGINFO, 0x7f2fdb5805e0}, NULL, 8) = 0
rt_sigprocmask(SIG_UNBLOCK, [RTMIN RT_1], NULL, 8) = 0
getrlimit(RLIMIT_STACK, {rlim_cur=8192*1024, rlim_max=RLIM64_INFINITY}) = 0
statfs("/sys/fs/selinux", 0x7ffca19cc3d0) = -1 ENOENT (No such file or directory)
statfs("/selinux", 0x7ffca19cc3d0)      = -1 ENOENT (No such file or directory)
brk(0)                                  = 0x1d61000
brk(0x1d82000)                          = 0x1d82000
open("/proc/filesystems", O_RDONLY)     = 3
fstat(3, {st_mode=S_IFREG|0444, st_size=0, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f2fdddd1000
read(3, "nodev\tsysfs\nnodev\trootfs\nnodev\tr"..., 1024) = 307
stat("/etc/sysconfig/64bit_strstr_via_64bit_strstr_sse2_unaligned", 0x7ffca19cc240) = -1 ENOENT (No such file or directory)
read(3, "", 1024)                       = 0
close(3)                                = 0
munmap(0x7f2fdddd1000, 4096)            = 0
access("/etc/selinux/config", F_OK)     = 0
open("/etc/pki/tls/legacy-settings", O_RDONLY) = -1 ENOENT (No such file or directory)
access("/etc/system-fips", F_OK)        = -1 ENOENT (No such file or directory)
rt_sigaction(SIGPIPE, {SIG_IGN, [PIPE], SA_RESTORER|SA_RESTART, 0x7f2fdb9c5270}, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGHUP, NULL, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGINT, NULL, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGQUIT, NULL, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGILL, NULL, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGTRAP, NULL, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGABRT, NULL, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGBUS, NULL, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGFPE, NULL, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGKILL, NULL, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGUSR1, NULL, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGSEGV, NULL, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGUSR2, NULL, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGPIPE, NULL, {SIG_IGN, [PIPE], SA_RESTORER|SA_RESTART, 0x7f2fdb9c5270}, 8) = 0
rt_sigaction(SIGALRM, NULL, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGTERM, NULL, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGSTKFLT, NULL, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGCHLD, NULL, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGCONT, NULL, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGSTOP, NULL, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGTSTP, NULL, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGTTIN, NULL, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGTTOU, NULL, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGURG, NULL, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGXCPU, NULL, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGXFSZ, NULL, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGVTALRM, NULL, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGPROF, NULL, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGWINCH, NULL, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGIO, NULL, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGPWR, NULL, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGSYS, NULL, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGRT_2, NULL, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGRT_3, NULL, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGRT_4, NULL, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGRT_5, NULL, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGRT_6, NULL, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGRT_7, NULL, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGRT_8, NULL, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGRT_9, NULL, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGRT_10, NULL, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGRT_11, NULL, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGRT_12, NULL, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGRT_13, NULL, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGRT_14, NULL, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGRT_15, NULL, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGRT_16, NULL, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGRT_17, NULL, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGRT_18, NULL, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGRT_19, NULL, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGRT_20, NULL, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGRT_21, NULL, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGRT_22, NULL, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGRT_23, NULL, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGRT_24, NULL, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGRT_25, NULL, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGRT_26, NULL, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGRT_27, NULL, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGRT_28, NULL, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGRT_29, NULL, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGRT_30, NULL, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGRT_31, NULL, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGRT_32, NULL, {SIG_DFL, [], 0}, 8) = 0
mmap(NULL, 2097152, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f2fd8457000
munmap(0x7f2fd8457000, 2097152)         = 0
mmap(NULL, 4190208, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f2fd8258000
munmap(0x7f2fd8258000, 1736704)         = 0
munmap(0x7f2fd8600000, 356352)          = 0
madvise(0x7f2fd8400000, 2097152, MADV_HUGEPAGE) = 0
getcwd("/home/soft/php/bin", 4096)      = 19
open("/usr/lib/locale/locale-archive", O_RDONLY|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=106070960, ...}) = 0
mmap(NULL, 106070960, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f2fd1ed7000
close(3)                                = 0
open("/etc/localtime", O_RDONLY|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=388, ...}) = 0
fstat(3, {st_mode=S_IFREG|0644, st_size=388, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f2fdddd1000
read(3, "TZif2\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\2\0\0\0\2\0\0\0\0"..., 4096) = 388
lseek(3, -240, SEEK_CUR)                = 148
read(3, "TZif2\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\3\0\0\0\3\0\0\0\0"..., 4096) = 240
close(3)                                = 0
munmap(0x7f2fdddd1000, 4096)            = 0
getcwd("/home/soft/php/bin", 4096)      = 19
lstat("/home/soft/php/bin/./php", {st_mode=S_IFREG|0755, st_size=39355536, ...}) = 0
lstat("/home/soft/php/bin", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
lstat("/home/soft/php", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
lstat("/home/soft", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
lstat("/home", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
access("/home/soft/php/bin/php", X_OK)  = 0
open("/home/soft/php/bin/php-cli.ini", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/home/soft/php/lib/php-cli.ini", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/home/soft/php/bin/php.ini", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/home/soft/php/lib/php.ini", O_RDONLY) = 3
ioctl(3, SNDCTL_TMR_TIMEBASE or SNDRV_TIMER_IOCTL_NEXT_DEVICE or TCGETS, 0x7ffca19c9d00) = -1 ENOTTY (Inappropriate ioctl for device)
fstat(3, {st_mode=S_IFREG|0644, st_size=70281, ...}) = 0
mmap(NULL, 70313, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f2fddda3000
lseek(3, 0, SEEK_CUR)                   = 0
brk(0)                                  = 0x1d82000
brk(0x1da3000)                          = 0x1da3000
munmap(0x7f2fddda3000, 70313)           = 0
close(3)                                = 0
mmap(NULL, 323584, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f2fddd66000
brk(0)                                  = 0x1da3000
brk(0x1dc4000)                          = 0x1dc4000
brk(0)                                  = 0x1dc4000
brk(0x1df2000)                          = 0x1df2000
futex(0x7f2fdce150d0, FUTEX_WAKE_PRIVATE, 2147483647) = 0
open("/home/soft/php/lib/php/extensions/no-debug-non-zts-20170718/fileinfo", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
open("/home/soft/php/lib/php/extensions/no-debug-non-zts-20170718/fileinfo.so", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\200[\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=5529736, ...}) = 0
mmap(NULL, 7151080, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f2fd1805000
mprotect(0x7f2fd1cd5000, 2097152, PROT_NONE) = 0
mmap(0x7f2fd1ed5000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x4d0000) = 0x7f2fd1ed5000
close(3)                                = 0
mprotect(0x7f2fd1ed5000, 4096, PROT_READ) = 0
open("/home/soft/php/lib/php/extensions/no-debug-non-zts-20170718/swoole", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
open("/home/soft/php/lib/php/extensions/no-debug-non-zts-20170718/swoole.so", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\320\27\4\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=12296584, ...}) = 0
mmap(NULL, 4166792, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f2fd140b000
mprotect(0x7f2fd1577000, 2097152, PROT_NONE) = 0
mmap(0x7f2fd1777000, 86016, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x16c000) = 0x7f2fd1777000
mmap(0x7f2fd178c000, 492680, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f2fd178c000
close(3)                                = 0
open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=40380, ...}) = 0
mmap(NULL, 40380, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f2fdddc8000
close(3)                                = 0
open("/lib64/libstdc++.so.6", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0 \262\5\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=991616, ...}) = 0
mmap(NULL, 3171168, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f2fd1104000
mprotect(0x7f2fd11ed000, 2093056, PROT_NONE) = 0
mmap(0x7f2fd13ec000, 40960, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xe8000) = 0x7f2fd13ec000
mmap(0x7f2fd13f6000, 82784, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f2fd13f6000
close(3)                                = 0
open("/lib64/libgcc_s.so.1", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\220*\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=88776, ...}) = 0
mmap(NULL, 2184192, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f2fd0eee000
mprotect(0x7f2fd0f03000, 2093056, PROT_NONE) = 0
mmap(0x7f2fd1102000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x14000) = 0x7f2fd1102000
close(3)                                = 0
mprotect(0x7f2fd1102000, 4096, PROT_READ) = 0
mprotect(0x7f2fd13ec000, 32768, PROT_READ) = 0
mprotect(0x7f2fd1777000, 61440, PROT_READ) = 0
futex(0x7f2fd14088ac, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x7f2fd14088b8, FUTEX_WAKE_PRIVATE, 2147483647) = 0
munmap(0x7f2fdddc8000, 40380)           = 0
open("/home/soft/php/lib/php/extensions/no-debug-non-zts-20170718/redis", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
open("/home/soft/php/lib/php/extensions/no-debug-non-zts-20170718/redis.so", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\20\204\1\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=1839584, ...}) = 0
mmap(NULL, 2577136, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f2fd0c78000
mprotect(0x7f2fd0ce4000, 2097152, PROT_NONE) = 0
mmap(0x7f2fd0ee4000, 36864, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x6c000) = 0x7f2fd0ee4000
mmap(0x7f2fd0eed000, 752, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f2fd0eed000
close(3)                                = 0
mprotect(0x7f2fd0ee4000, 20480, PROT_READ) = 0
open("/home/soft/php/lib/php/extensions/no-debug-non-zts-20170718/zmq", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
open("/home/soft/php/lib/php/extensions/no-debug-non-zts-20170718/zmq.so", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\20R\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=351416, ...}) = 0
mmap(NULL, 2183496, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f2fd0a62000
mprotect(0x7f2fd0a76000, 2093056, PROT_NONE) = 0
mmap(0x7f2fd0c75000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x13000) = 0x7f2fd0c75000
mmap(0x7f2fd0c77000, 328, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f2fd0c77000
close(3)                                = 0
open("/home/soft/zmq/lib/tls/x86_64/libzmq.so.4", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/home/soft/zmq/lib/tls/x86_64", 0x7ffca19ca4a0) = -1 ENOENT (No such file or directory)
open("/home/soft/zmq/lib/tls/libzmq.so.4", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/home/soft/zmq/lib/tls", 0x7ffca19ca4a0) = -1 ENOENT (No such file or directory)
open("/home/soft/zmq/lib/x86_64/libzmq.so.4", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/home/soft/zmq/lib/x86_64", 0x7ffca19ca4a0) = -1 ENOENT (No such file or directory)
open("/home/soft/zmq/lib/libzmq.so.4", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0000\274\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=3330552, ...}) = 0
mmap(NULL, 2425920, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f2fd0811000
mprotect(0x7f2fd085d000, 2097152, PROT_NONE) = 0
mmap(0x7f2fd0a5d000, 20480, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x4c000) = 0x7f2fd0a5d000
close(3)                                = 0
mprotect(0x7f2fd0a5d000, 16384, PROT_READ) = 0
mprotect(0x7f2fd0c75000, 4096, PROT_READ) = 0
open("/home/soft/php/lib/php/extensions/no-debug-non-zts-20170718/say.so", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0P\n\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=31480, ...}) = 0
mmap(NULL, 2105616, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f2fd060e000
mprotect(0x7f2fd060f000, 2097152, PROT_NONE) = 0
mmap(0x7f2fd080f000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1000) = 0x7f2fd080f000
close(3)                                = 0
mprotect(0x7f2fd080f000, 4096, PROT_READ) = 0
open("/home/soft/php/lib/php/extensions/no-debug-non-zts-20170718/yaf.so", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0P\17\1\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=1428488, ...}) = 0
mmap(NULL, 2359656, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f2fd03cd000
mprotect(0x7f2fd0408000, 2093056, PROT_NONE) = 0
mmap(0x7f2fd0607000, 24576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x3a000) = 0x7f2fd0607000
mmap(0x7f2fd060d000, 360, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f2fd060d000
close(3)                                = 0
mprotect(0x7f2fd0607000, 12288, PROT_READ) = 0
brk(0)                                  = 0x1df2000
brk(0x1e13000)                          = 0x1e13000
futex(0x7f2fdc9f7d48, FUTEX_WAKE_PRIVATE, 2147483647) = 0
open("/etc/pki/tls/openssl.cnf", O_RDONLY) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=10923, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f2fdddd1000
read(3, "#\n# OpenSSL example configuratio"..., 4096) = 4096
read(3, "ancient versions of Netscape cra"..., 4096) = 4096
read(3, "gainst PKIX guidelines but some "..., 4096) = 2731
read(3, "", 4096)                       = 0
close(3)                                = 0
munmap(0x7f2fdddd1000, 4096)            = 0
brk(0)                                  = 0x1e13000
brk(0x1e34000)                          = 0x1e34000
mmap(NULL, 151552, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f2fddd41000
gettid()                                = 21621
rt_sigaction(SIGPIPE, {SIG_IGN, [], SA_RESTORER, 0x7f2fdb9c5270}, NULL, 8) = 0
brk(0)                                  = 0x1e34000
brk(0x1e55000)                          = 0x1e55000
brk(0)                                  = 0x1e55000
brk(0x1e76000)                          = 0x1e76000
brk(0)                                  = 0x1e76000
brk(0x1e97000)                          = 0x1e97000
brk(0)                                  = 0x1e97000
brk(0x1eb8000)                          = 0x1eb8000
getrlimit(RLIMIT_STACK, {rlim_cur=8192*1024, rlim_max=RLIM64_INFINITY}) = 0
brk(0)                                  = 0x1eb8000
brk(0x1ed9000)                          = 0x1ed9000
mmap(NULL, 299008, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f2fddcf8000
munmap(0x7f2fddd41000, 151552)          = 0
brk(0)                                  = 0x1ed9000
brk(0x1efa000)                          = 0x1efa000
brk(0)                                  = 0x1efa000
brk(0x1f1b000)                          = 0x1f1b000
brk(0)                                  = 0x1f1b000
brk(0x1f5b000)                          = 0x1f5b000
open("/sys/devices/system/cpu/online", O_RDONLY|O_CLOEXEC) = 3
read(3, "0\n", 8192)                    = 2
close(3)                                = 0
uname({sys="Linux", node="iz2zegqaeolqftvinr8is3z", ...}) = 0
mmap(NULL, 2097248, PROT_READ|PROT_WRITE, MAP_SHARED|MAP_ANONYMOUS, -1, 0) = 0x7f2fd01cc000
getrlimit(RLIMIT_NOFILE, {rlim_cur=262140, rlim_max=262140}) = 0
mmap(NULL, 184320, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f2fddccb000
access("/tmp", R_OK)                    = 0
brk(0)                                  = 0x1f5b000
brk(0x1f7c000)                          = 0x1f7c000
brk(0)                                  = 0x1f7c000
brk(0x1f9d000)                          = 0x1f9d000
brk(0)                                  = 0x1f9d000
brk(0x1fbe000)                          = 0x1fbe000
eventfd2(0, 0)                          = 3
fcntl(3, F_GETFL)                       = 0x2 (flags O_RDWR)
fcntl(3, F_SETFL, O_RDWR|O_NONBLOCK)    = 0
fcntl(3, F_GETFL)                       = 0x802 (flags O_RDWR|O_NONBLOCK)
fcntl(3, F_SETFL, O_RDWR|O_NONBLOCK)    = 0
brk(0)                                  = 0x1fbe000
brk(0x1fe1000)                          = 0x1fe1000
rt_sigaction(SIGPROF, NULL, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGPROF, {0x85b170, ~[ILL TRAP ABRT BUS FPE KILL SEGV CONT STOP TSTP TTIN TTOU SYS RTMIN RT_1], SA_RESTORER|SA_SIGINFO, 0x7f2fdb9c5270}, NUL                                                                                    L, 8) = 0
rt_sigaction(SIGHUP, NULL, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGHUP, {0x85b170, ~[ILL TRAP ABRT BUS FPE KILL SEGV CONT STOP TSTP TTIN TTOU SYS RTMIN RT_1], SA_RESTORER|SA_SIGINFO, 0x7f2fdb9c5270}, NULL                                                                                    , 8) = 0
rt_sigaction(SIGINT, NULL, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGINT, {0x85b170, ~[ILL TRAP ABRT BUS FPE KILL SEGV CONT STOP TSTP TTIN TTOU SYS RTMIN RT_1], SA_RESTORER|SA_SIGINFO, 0x7f2fdb9c5270}, NULL                                                                                    , 8) = 0
rt_sigaction(SIGQUIT, NULL, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGQUIT, {0x85b170, ~[ILL TRAP ABRT BUS FPE KILL SEGV CONT STOP TSTP TTIN TTOU SYS RTMIN RT_1], SA_RESTORER|SA_SIGINFO, 0x7f2fdb9c5270}, NUL                                                                                    L, 8) = 0
rt_sigaction(SIGTERM, NULL, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGTERM, {0x85b170, ~[ILL TRAP ABRT BUS FPE KILL SEGV CONT STOP TSTP TTIN TTOU SYS RTMIN RT_1], SA_RESTORER|SA_SIGINFO, 0x7f2fdb9c5270}, NUL                                                                                    L, 8) = 0
rt_sigaction(SIGUSR1, NULL, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGUSR1, {0x85b170, ~[ILL TRAP ABRT BUS FPE KILL SEGV CONT STOP TSTP TTIN TTOU SYS RTMIN RT_1], SA_RESTORER|SA_SIGINFO, 0x7f2fdb9c5270}, NUL                                                                                    L, 8) = 0
rt_sigaction(SIGUSR2, NULL, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGUSR2, {0x85b170, ~[ILL TRAP ABRT BUS FPE KILL SEGV CONT STOP TSTP TTIN TTOU SYS RTMIN RT_1], SA_RESTORER|SA_SIGINFO, 0x7f2fdb9c5270}, NUL                                                                                    L, 8) = 0
rt_sigaction(SIGPROF, {0x85b170, ~[ILL TRAP ABRT BUS FPE KILL SEGV CONT STOP TSTP TTIN TTOU SYS RTMIN RT_1], SA_RESTORER|SA_SIGINFO, 0x7f2fdb9c5270}, NUL                                                                                    L, 8) = 0
rt_sigprocmask(SIG_UNBLOCK, [PROF], NULL, 8) = 0
mmap(NULL, 65536, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f2fddd56000
brk(0)                                  = 0x1fe1000
brk(0x2002000)                          = 0x2002000
fstat(0, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 1), ...}) = 0
fstat(0, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 1), ...}) = 0
lseek(0, 0, SEEK_CUR)                   = -1 ESPIPE (Illegal seek)
fstat(1, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 1), ...}) = 0
fstat(1, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 1), ...}) = 0
lseek(1, 0, SEEK_CUR)                   = -1 ESPIPE (Illegal seek)
fstat(2, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 1), ...}) = 0
fstat(2, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 1), ...}) = 0
lseek(2, 0, SEEK_CUR)                   = -1 ESPIPE (Illegal seek)
//就是地方,呼叫write 函式 向檔案描述符1寫資料
//0=標準輸入裝置【不清楚可以看看本人對workerman的註釋】
//1=輸出裝置
//2=輸出裝置
//檔案描述符:是指某程式正在訪問的檔案,由核心返回【比如socket 檔案由核心返回】
//就是把123 往輸出裝置遮蔽列印出來而已
//前面的程式碼是php解析器執行時各種系統呼叫
write(1, "123", 3123)                      = 3
//下面是關閉相應的檔案和釋放共享記憶體操作以及退出
close(2)                                = 0
close(1)                                = 0
close(0)                                = 0
munmap(0x7f2fd03cd000, 2359656)         = 0
munmap(0x7f2fd060e000, 2105616)         = 0
close(3)                                = 0
munmap(0x7f2fd0a62000, 2183496)         = 0
munmap(0x7f2fd0811000, 2425920)         = 0
munmap(0x7f2fd0c78000, 2577136)         = 0
munmap(0x7f2fddccb000, 184320)          = 0
munmap(0x7f2fd01cc000, 2097248)         = 0
munmap(0x7f2fd140b000, 4166792)         = 0
munmap(0x7f2fd1805000, 7151080)         = 0
munmap(0x7f2fddd56000, 65536)           = 0
munmap(0x7f2fddcf8000, 299008)          = 0
munmap(0x7f2fd8400000, 2097152)         = 0
munmap(0x7f2fddd66000, 323584)          = 0
//程式退出操作【我們們呼叫的exit或是_exit就是呼叫exit_group】
exit_group(0)                           = ?

上面就是php直譯器執行程式碼時的流程【程式執行流程】

下面我們執行php test.php的結果

FPM 架構下執行一個 PHP 檔案後 nginx 如何與 PHP-FPM 程式管理器進行互動的 [硬核跟蹤資料互動]

FPM 架構下執行一個 PHP 檔案後 nginx 如何與 PHP-FPM 程式管理器進行互動的 [硬核跟蹤資料互動]

FPM 架構下執行一個 PHP 檔案後 nginx 如何與 PHP-FPM 程式管理器進行互動的 [硬核跟蹤資料互動]

到這裡大家多少了解一些了,這個php直譯器就是讀取我們擼好的程式碼,然後這樣這樣【哪樣?自己看嘛 對於大佬分分鐘也瞭解了^_^】然後輸出內容了。

這個玩意是怎麼執行的,一般會說去讀原始碼,去百度【然後找出大堆重複的CSDN^_^】,分分鐘就知道了,我這裡就直接做測試它是如何執行的,下面的分析比較硬核,請做好心理準備

FPM 架構下執行一個 PHP 檔案後 nginx 如何與 PHP-FPM 程式管理器進行互動的 [硬核跟蹤資料互動]

  1. ./php-fpm啟動
  2. nginx 啟動
    然後執行如下
    FPM 架構下執行一個 PHP 檔案後 nginx 如何與 PHP-FPM 程式管理器進行互動的 [硬核跟蹤資料互動]

然後它們都監聽了9000埠和2347埠【伺服器處於LISTEN狀態】,這個時候我們去看一下PHP-FPM到底以多少個程式執行的?是以什麼以樣的方式執行的?
3.pstree -ap |grep php-fpm
【我在laravel社群寫過php版本的master/worker工作模型的文章,有興趣的大佬可以看看】
FPM 架構下執行一個 PHP 檔案後 nginx 如何與 PHP-FPM 程式管理器進行互動的 [硬核跟蹤資料互動]
現在呢我想知道worker工作程式,它現在在幹嘛?它到底在做什麼?【是在睡覺還是在做事情呢?】

![FPM 架構下執行一個 PHP 檔案後 nginx 如何與 PHP-FPM 程式管理器進行互動的 [硬核跟蹤資料互動]]
FPM 架構下執行一個 PHP 檔案後 nginx 如何與 PHP-FPM 程式管理器進行互動的 [硬核跟蹤資料互動]
沒有錯master/worker總為3個程式執行在cpu的地盤上,現在我們來看worker程式在幹嘛

FPM 架構下執行一個 PHP 檔案後 nginx 如何與 PHP-FPM 程式管理器進行互動的 [硬核跟蹤資料互動]
這個目錄是在程式執行時產生的【它會儲存程式執行期間的資料如程式的狀態,記憶體對映,所維護的檔案描述符表,資源限制等以及程式執行到哪】

程式的檔案維護列表
FPM 架構下執行一個 PHP 檔案後 nginx 如何與 PHP-FPM 程式管理器進行互動的 [硬核跟蹤資料互動]

0,1,2是任何程式啟動後【程式預設自動開啟的檔案】,其它檔案是程式執行時開啟的其它檔案,檔案linux用整數字表示【有必要了解一上檔案描述符和檔案流即STREAM的關係,我這裡不在解釋】

FPM 架構下執行一個 PHP 檔案後 nginx 如何與 PHP-FPM 程式管理器進行互動的 [硬核跟蹤資料互動]
這裡顯示了當前master程式的相關資訊,我們知道它現在睡於Sleeping【阻塞中,這個時候cpu是執行其它程式了,此程式阻塞,直到合適條件下才會喚醒此程式,所以有必要去學習一下PHP多程式程式設計哦】
現在我們它程式處在Sleeping中,那我想知道它到底是執行到哪個函式時阻塞的【如果非常熟悉php socket 或是workerman/swoole等網路應該瞭解阻塞,非阻塞,同步,非同步的概念】

FPM 架構下執行一個 PHP 檔案後 nginx 如何與 PHP-FPM 程式管理器進行互動的 [硬核跟蹤資料互動]

wchan檔案是顯示當前程式執行到哪兒阻塞的,沒有錯執行到epoll_wait【它內部呼叫ep_poll】
這個時候呢就涉及到TCP/IP通訊了【所以本渣渣也在laravel社群釋出了關於此內容的文章,本人不會再細說了】
epoll_wait會讓程式阻塞【因為現在沒有資料可讀,什麼資料?就是socket 資料】
我們前面也說了我啟動PHP-FPM程式後,它啟動了一個TCP服務並監聽9000埠,說明什麼,說明它要進行TCP/IP通訊【要和我們後面說到的nginx進行通訊啊】

現在我們來看worker 程式
FPM 架構下執行一個 PHP 檔案後 nginx 如何與 PHP-FPM 程式管理器進行互動的 [硬核跟蹤資料互動]

FPM 架構下執行一個 PHP 檔案後 nginx 如何與 PHP-FPM 程式管理器進行互動的 [硬核跟蹤資料互動]

FPM 架構下執行一個 PHP 檔案後 nginx 如何與 PHP-FPM 程式管理器進行互動的 [硬核跟蹤資料互動]

沒有錯,php worker子程式阻塞了,它在accept時產生了阻塞【因為現在沒有socket 客戶端連線,所以阻塞Sleeping著,cpu依然去執行其它程式了,accept只有等客戶端連線時才會喚醒此程式接受資料】【這裡我非常建議大家去看看我之前擼的TCP/IP php socket 程式設計,不然你看到這裡還是迷糊的】

現在我們知道PHP-FPM程式在阻塞狀態中【因為沒有連線,所以等著,等有小姐姐來了,再服務】

現在我們來看NGINX服務

FPM 架構下執行一個 PHP 檔案後 nginx 如何與 PHP-FPM 程式管理器進行互動的 [硬核跟蹤資料互動]

nginx一樣有個MASTER主程式和一個工作程式

FPM 架構下執行一個 PHP 檔案後 nginx 如何與 PHP-FPM 程式管理器進行互動的 [硬核跟蹤資料互動]

FPM 架構下執行一個 PHP 檔案後 nginx 如何與 PHP-FPM 程式管理器進行互動的 [硬核跟蹤資料互動]
我們看到NGINX 的工作程式再阻塞中,在等客戶端連線【所以大家勿必學習PHP socket 程式設計或是看看本人擼的workerman註解】

以上我們知道啟動php-fpm/nginx之後 它們處於阻塞狀態中【知道它執行到EPOLL_WAIT]後阻塞的【所以對網路程式設計或是對workerman,swoole非常熟悉的人是能看懂這文章的^_^】

FPM 架構下執行一個 PHP 檔案後 nginx 如何與 PHP-FPM 程式管理器進行互動的 [硬核跟蹤資料互動]

現在我們在瀏覽器端訪問
http://xxx/test.php
nginx配置是這樣的

FPM 架構下執行一個 PHP 檔案後 nginx 如何與 PHP-FPM 程式管理器進行互動的 [硬核跟蹤資料互動]

FPM 架構下執行一個 PHP 檔案後 nginx 如何與 PHP-FPM 程式管理器進行互動的 [硬核跟蹤資料互動]
然後在瀏覽器上執行

FPM 架構下執行一個 PHP 檔案後 nginx 如何與 PHP-FPM 程式管理器進行互動的 [硬核跟蹤資料互動]

FPM 架構下執行一個 PHP 檔案後 nginx 如何與 PHP-FPM 程式管理器進行互動的 [硬核跟蹤資料互動]

FPM 架構下執行一個 PHP 檔案後 nginx 如何與 PHP-FPM 程式管理器進行互動的 [硬核跟蹤資料互動]

FPM 架構下執行一個 PHP 檔案後 nginx 如何與 PHP-FPM 程式管理器進行互動的 [硬核跟蹤資料互動]

以上內容對於熟悉workerman/swoole/go/nodejs/java網路程式設計的人是非常容易理解的,如果確實理解困難請多多關注本人的文章,多看看就理解了

PS:說明,時間倉促不在對一些內容進行詳細解釋【如果說你有意可以加本人,然後給我介紹個女朋友這樣子,我會詳細跟你解釋的^_^】

本作品採用《CC 協議》,轉載必須註明作者和本文連結

jackChen

相關文章