进程管理

运行ssh的程序/服务

互联网  IT部门  PM 产品经理  UI 设计师  前端开发工程师 H5   后端开发工程师 JAVA Python PHP 运维OP

httpd ==  apache web服务器软件 运行前端源码

查看进程  得到想要的信息

静态:ps

 ps aux

 第一列:进程的拥有者  

 第二列:PID 进程ID 唯一标识一个进程

 第三列:cpu使用进程的百分比

 第四列:mem使用进程的百分比

 第七列:终端

 第八列:进程的状态

 最后一列:进程的名字

 -%从大到小,%从小到大

获取当前系统中每个进程对应mem的使用情况。(pid %mem command)

获取当前系统中每个进程对应cpu的使用情况。(pid %cpu command)

获取当前系统中每个进程对应mem的使用情况并且只要最多的前三

[root@xingdiancloud-server ~]# ps axo command,%mem,pid --sort -%mem | head -4  指定了字段

COMMAND                     %MEM    PID

/usr/bin/python2 -Es /usr/s  1.7    955

/usr/lib/polkit-1/polkitd -  1.5    625

/usr/sbin/NetworkManager --  0.8    650

[root@xingdiancloud-server ~]# ps aux  --sort -%mem | head -4   没有指定字段

pid 进程ID

ppid 父进程ID

如何获取一个进程PID,后面可以使用PID对进程进行管理

sshd

[root@xingdiancloud-server ~]# ps aux | grep sshd

[root@xingdiancloud-server ~]# ps axo command,pid | grep sshd

[root@xingdiancloud-server ~]# cat /run/sshd.pid  只显示主进程

[root@xingdiancloud-server ~]# pidof sshd

1206 954

[root@xingdiancloud-server ~]# pgrep sshd

954

1206

扩展:lsof

[root@xingdiancloud-server ~]# yum -y install lsof

服务的端口,服务运行,进程存在,服务不运行,进程不存在,服务的端口如果存在,进程一定在

Linux系统中每个服务都有对应的端口,常见的:sshd=22 httpd=80

[root@xingdiancloud-server ~]# lsof -i:80

[root@xingdiancloud-server ~]# lsof -i:22

w who 都可以看到谁正在远程连接我,能够获取到对方的IP地址、终端编号、对应的用户

w 还可以看服务器的运行时间,用户数量,平均负载

用户:

1.获取那些服务器正在连接我  w who

2.获取当前服务器的平均负载、运行时间 w

企业案例

1.如何判断一个服务是否处于运行状态

ps aux

lsof

2.当发现服务器cpu飙升到200%,如何获取对应的进程信息/获取是由那些进程造成的

ps aux --sort -%cpu | head  

动态:top 、 htop

快捷键: P 将%cpu排序  M 将%mem排序 R 排序反转