进程管理
运行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 排序反转