linux ps命令
父目录:linux基础入门
- 一.linux进程管理
- 1.什么是进程(process)
- 2.进程与程序(process & program)
- 3.命令执行过程fork and exec
- 4.进程角度理解Linux的多用户多任务多终端环境
- 二.查看系统进程的状态信息
- 1.ps打印当前时刻进程的运行状态
- 2.top观察进程状态的动态变化
- 3.pstree以树状结构显示系统中进程的父子关系
- 三.kill或者killall给进程发送信号(signal)
- 四.进程优先级Priority和Nice值
- 1.nice :新执行的指令即给予新的 nice 值
- 2.renice :已存在进程的 nice 重新调整
- 五.进程特殊权限UUID、SUID、SGID
- 六./proc目录的意义
- 七.与进程相关的其他命令
- 1.fuser找出正在使用某个文件的进程
- 2.lsof列出进程所打开的文件名
- 3.pidof通过进程名打印进程的PID
3.pstree以树状结构显示系统中进程的父子关系
回到顶部[root@initroot ~]# pstree [-A|U] [-up]选项与参数:
-A :各进程树之间的连接以 ASCII 字符来连接;范例一:列出目前系统上面所有的进程树的相关性:
-U :各进程树之间的连接以万国码的字符来连接。在某些终端接口下可能会有错误;
-p :并同时列出每个 process 的 PID;
-u :并同时列出每个 process 的所属账号名称。
[root@initroot ~]# pstree systemd─┬─AliYunDun───22*[{AliYunDun}] ├─AliYunDunUpdate───3*[{AliYunDunUpdate}] ├─2*[agetty] ├─aliyun-service───2*[{aliyun-service}] ├─atd ├─auditd───{auditd} ├─crond ├─dbus-daemon ├─dhclient ├─mysqld_safe───mysqld───18*[{mysqld}] ├─nginx───nginx ├─npm─┬─node───10*[{node}] │ └─10*[{npm}] ├─ntpd ├─php-fpm───15*[php-fpm] ├─polkitd───6*[{polkitd}] ├─rsyslogd───2*[{rsyslogd}] ├─sshd─┬─2*[sshd───sftp-server] │ ├─sshd───bash │ └─sshd───bash───pstree ├─systemd-journal ├─systemd-logind ├─systemd-udevd └─tuned───4*[{tuned}]
[root@initroot ~]# pstree -A systemd-+-AliYunDun---22*[{AliYunDun}] |-AliYunDunUpdate---3*[{AliYunDunUpdate}] |-2*[agetty] |-aliyun-service---2*[{aliyun-service}] |-atd |-auditd---{auditd} |-crond |-dbus-daemon |-dhclient |-mysqld_safe---mysqld---19*[{mysqld}] |-nginx---nginx |-npm-+-node---10*[{node}] | `-10*[{npm}] |-ntpd |-php-fpm---15*[php-fpm] |-polkitd---6*[{polkitd}] |-rsyslogd---2*[{rsyslogd}] |-sshd-+-2*[sshd---sftp-server] | |-sshd---bash | `-sshd---bash---pstree |-systemd-journal |-systemd-logind |-systemd-udevd `-tuned---4*[{tuned}]# 注意一下,为了节省版面,所以已经删去很多进程了!
范例二:承上题,同时秀出 PID 与 users
[root@initroot ~]# pstree -Aup systemd(1)-+-AliYunDun(2586)-+-{AliYunDun}(2587) | |-{AliYunDun}(2588) | |-{AliYunDun}(2599) | |-{AliYunDun}(2600) | |-{AliYunDun}(2601) | |-{AliYunDun}(2602) | |-{AliYunDun}(2603) | |-{AliYunDun}(2604) | |-{AliYunDun}(2605) | |-{AliYunDun}(2606) | |-{AliYunDun}(2607) | |-{AliYunDun}(2608) | |-{AliYunDun}(2609) | |-{AliYunDun}(2610) | |-{AliYunDun}(2611) | |-{AliYunDun}(2612) | |-{AliYunDun}(2613) | |-{AliYunDun}(2614) | |-{AliYunDun}(2615) | |-{AliYunDun}(2616) | |-{AliYunDun}(30927) | `-{AliYunDun}(32115) |-AliYunDunUpdate(2530)-+-{AliYunDunUpdate}(2531) | |-{AliYunDunUpdate}(2532) | `-{AliYunDunUpdate}(2534) |-agetty(530) |-agetty(531) |-aliyun-service(797)-+-{aliyun-service}(838) | `-{aliyun-service}(842) |-atd(506) |-auditd(460)---{auditd}(461) |-crond(501) |-dbus-daemon(487,dbus) |-dhclient(717) |-mysqld_safe(927,mysql)---mysqld(1193)-+-{mysqld}(1203) | |-{mysqld}(1205) | |-{mysqld}(1206) | |-{mysqld}(1207) | |-{mysqld}(1208) | |-{mysqld}(1209) | |-{mysqld}(1210) | |-{mysqld}(1211) | |-{mysqld}(1212) | |-{mysqld}(1213) | |-{mysqld}(1214) | |-{mysqld}(1217) | |-{mysqld}(1218) | |-{mysqld}(1219) | |-{mysqld}(1220) | |-{mysqld}(1221) | |-{mysqld}(1222) | `-{mysqld}(1240) |-nginx(10373)---nginx(10374,nginx) |-npm(15728)-+-node(15741)-+-{node}(15742) | | |-{node}(15743) | | |-{node}(15744) | | |-{node}(15745) | | |-{node}(15746) | | |-{node}(15747) | | |-{node}(15748) | | |-{node}(15749) | | |-{node}(15750) | | `-{node}(15751) | |-{npm}(15729) | |-{npm}(15730) | |-{npm}(15731) | |-{npm}(15732) | |-{npm}(15733) | |-{npm}(15734) | |-{npm}(15736) | |-{npm}(15737) | |-{npm}(15738) | `-{npm}(15739) |-ntpd(492,ntp) |-php-fpm(10351)-+-php-fpm(3290,apache) | |-php-fpm(8272,apache) | |-php-fpm(9137,apache) | |-php-fpm(10353,apache) | |-php-fpm(10354,apache) | |-php-fpm(10355,apache) | |-php-fpm(10356,apache) | |-php-fpm(10357,apache) | |-php-fpm(12432,apache) | |-php-fpm(12433,apache) | |-php-fpm(13209,apache) | |-php-fpm(13392,apache) | |-php-fpm(13399,apache) | |-php-fpm(27911,apache) | `-php-fpm(28122,apache) |-polkitd(496,polkitd)-+-{polkitd}(509) | |-{polkitd}(511) | |-{polkitd}(513) | |-{polkitd}(514) | |-{polkitd}(515) | `-{polkitd}(521) |-rsyslogd(791)-+-{rsyslogd}(822) | `-{rsyslogd}(843) |-sshd(1242)-+-sshd(31589)---sftp-server(31591) | |-sshd(32116)---bash(32118) | |-sshd(32277)---sftp-server(32279) | `-sshd(32423)---bash(32429)---pstree(32464) |-systemd-journal(339) |-systemd-logind(497) |-systemd-udevd(357) `-tuned(782)-+-{tuned}(1108) |-{tuned}(1111) |-{tuned}(1115) `-{tuned}(1215)在括号 () 内的即是 PID 以及该进程的 owner 喔!一般来说,如果该进程的所有人与父进程同, 就不会列出,但是如果与父进程不一样,那就会列出该进程的拥有者!看上面 13927 就转变成 peter 了 如果要找进程之间的相关性,这个 pstree 真是好用到不行!直接输入 pstree 可以查到进程相关性, 如上表所示,还会使用线段将相关性进程连结起来哩! 一般链接符号可以使用 ASCII 码即可,但 有时因为语系问题会主动的以 Unicode 的符号来链接, 但因为可能终端机无法支持该编码,或许会 造成乱码问题。因此可以加上 -A 选项来克服此类线段乱码问题。
由 pstree 的输出我们也可以很清楚的知道,所有的进程都是依附在 systemd 这支进程底下的! 仔 细看一下,这支进程的 PID 是一号喔!因为他是由 Linux 核心所主动呼叫的第一支程序!所以 PID 就是一号了。 这也是我们刚刚提到僵尸进程时有提到,为啥发生僵尸进程需要重新启动? 因为 systemd 要重新启动,而重新启动 systemd 就是 reboot 啰!
如果还想要知道 PID 与所属使用者,加上 -u 及 -p 两个参数即可。我们前面不是一直提到, 如果 子进程挂点或者是老是砍不掉子进程时,该如何找到父进程吗?呵呵!用这个 pstree 就对了! ^_^
pstree命令以树状结构显示系统中的进程,可以更直观的看出进程之间的父子关系
Usage: pstree [-acglpsStuZ] [ -h | -H PID ] [ -n | -N type ]
[ -A | -G | -U ] [ PID | USER ]
pstree -V
Display a tree of processes.
-a, --arguments show command line arguments
-A, --ascii use ASCII line drawing characters
-c, --compact don't compact identical subtrees
-h, --highlight-all highlight current process and its ancestors
-H PID,
--highlight-pid=PID highlight this process and its ancestors
-g, --show-pgids show process group ids; implies -c
-G, --vt100 use VT100 line drawing characters
-l, --long don't truncate long lines
-n, --numeric-sort sort output by PID
-N type,
--ns-sort=type sort by namespace type (cgroup, ipc, mnt, net, pid,
user, uts)
-p, --show-pids show PIDs; implies -c
-s, --show-parents show parents of the selected process
-S, --ns-changes show namespace transitions
-t, --thread-names show full thread names
-T, --hide-threads hide threads, show only processes
-u, --uid-changes show uid transitions
-U, --unicode use UTF-8 (Unicode) line drawing characters
-V, --version display version information
-Z, --security-context
show SELinux security contexts
PID start at this PID; default is 1 (init)
USER show only trees rooted at processes of this user
initroot编辑整理,转载请注明www.initroot.com
100次点赞
100次阅读