13928 13970 13970 13928 pts/0
18703 S 1000 0:00
\
_ bash
13970 14830 14830 13928 pts/0 18703 S 0 0:00
\
_ sudo su
-
14830 14835 14830 13928 pts/0 18703 S 0 0:00
\
_ su
-
14835 14836 14836 13928 pts/0 18703
S 0 0:00
\
_
-
bash
14836 18703 18703 13928 pts/0 18703 R+ 0 0:00
\
_ ps axjf
.....(
后面省略
).....
看出来了吧?其实鸟哥在½行一些测试时,都是以网络联机½虚拟机来测试的,所以啰,你会发
现其实½程之间是有相关性的啦!
不过,其实还可以使用
pstree
来达成这个½程树喔!以上面
的例子来看,鸟哥是透过
sshd
提供的网络服务取得一个½程,
该½程提供
bash
给我使用,而
我透过
bash
再去执行
ps axjf
!这样可以看的懂了吗?其他各字段的意义请
man ps (
虽然真的很
难
man
的出来!
)
啰!
范例五:找出与
cron
与
rsyslog
这两个
服
务
有
关
的
PID
号码
?
[root@study ~]#
ps aux | egrep '(cron|rsyslog)'
root 742 0.0 0.1 208012
4088 . Ssl Aug04 0:00 /usr/sbin/rsyslogd
-
n
root 1338 0.0 0.0 126304 1704 . Ss Aug04 0:00 /usr/sbin/crond
-
n
root 18740 0.0 0.0 112644 980 pts/0 S+ 00:49 0:00 grep
-
E
--
color=auto
(cron|rsyslog)
#
所以
号码
是
742
及
1338
这两个啰
!就是
这样
找的啦!
除此之外,我们必须要知道的是『½尸
(zombie)
』½程是什么?
通常,造成½尸½程的成因是
因为该½程应该已经执行完毕,或者是因故应该要终止了,
但是该½程的父½程却无法完整的½
该½程½束掉,而造成那个½程一直存在内存当中。
如果你发现在某个½程的
CMD
后面还½上
<defunct>
时,就代表该½程是½尸½程啦,例如:
apache 8683 0.0 0.9 83384 9992 . Z 14:33 0:00 /usr/sbin/httpd
<defunct>
当系统不稳定的时候就容易造成所谓的½尸½程,可能是因为程序写的不好啦,或者是使用者的
操作习惯不良等等所造成。
如果你发现系统中很多½尸½程时,记得啊!要找出该½程的父½程,
然后好好的做个追踪,好好的½行主机的环境优化啊!
看看有什么地方需要改善的,不要只是直
½½他
kill
掉而已呢!不然的话,万一他一直产生,那可就麻烦了!
@_@
事实上,通常½尸½程都已经无法控管,而直½是½给
systemd
这支程序来负责了,偏偏
systemd
是系统第一支执行的程序,
他是所有程序的父程序!我们无法杀掉该程序的
(
杀掉他,系统就死
掉了!
)
,所以啰,如果产生½尸½程,
而系统过一阵子还没有办法透过核心非经常性的特殊处理
来½该½程删除时,那你只好透过
reboot
的方式来½该½程抹去了!
.
top
:动态观察½程的变化
相对于
ps
是撷取一个时间点的½程状态,
top
则可以持续侦测½程运作的状态!使用方式如下:
[root@study ~]#
top [
-
d
数
字
] | top [
-
bnp]
选项
与
参数
:
-
d
:后面可以½秒
数
,就是整
个½
程
画
面更新的秒
数
。
预设
是
5
秒;