每开启一个终端就会多一个bash进程出来
ps -ef | grep bash
每连接一个虚拟终端的Linux系统就会出现一个bash进程;shell[壳]的意思(用与解释用户输入的命令)
bash=shell=命令行解释器
bash时是一个可执行程序
pts时虚拟终端,一个连接到虚拟机的虚拟终端
终端上开启进程
ps -la
man ps //可以用来查看ps的功能
一个终端对应一个bash
随着终端的退出,这个终端上运行的进程也退出
可执行程序nginx是bash的子进程
./nginx是执行bash
每个进程属于一个进程组;一个或者多个进程的集合
每个进程组有唯一的进程ID,每一个进程有唯一的进程组ID
,可以调用系统,函数来传讲进程组ID
一般,子要不经常特许的系统函数调用,一个bash上边运行的所有进程都属于一个会话,而这个会话有一个session leader,
而通常这个bash就是session leader,你可以调用特许的系统函数创建新的session
UID是用户ID,PID是进程ID,PPID是父进程ID。
ps -eo pid,ppid,sid,tty,pgrp,comm | grep -E 'bash|PID|nginx'
如果我把xshell终端断开,操作系统会发送SIGHUP信号(终端断开信号),给session,leader也就是给这个bash进程
bash进程收到SIGHUP信号后,bash会把信号发送给session里的所有进程,收到SIGHUP信号的缺省动作就是退出
strace工具的使用,调试分析诊断工具
strace工具
第一步,跟踪nginx进程,
下面是跟踪nginx的信号
strace