首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

笔记:Centos7 进程与用户相关管理,ps top who ptree

linux 中查看进程,主要是为了查看系统运行的情况:

有哪些程序在运行,占用资源情况及运行效率,关掉不需要的进程

一、查看进程状态,一般使用ps命令

ps 选项

选项如下

-e 显示所有进程。

-f 全格式。

-h 不显示标题。

-l 长格式。

-w 宽输出。

-a 显示终端上的所有进程,包括其他用户的进程。

-r 只显示正在运行的进程。

-x 显示没有控制终端的进程。

-u 进程的用户信息

我们最常用的是

ps -aux

实例

各列说明

USER进程所有者的用户名。

PID进程的ID。

%CPU该进程自最近一次刷新以来所占用的CPU时间和总时间的百分比

%MEM该进程占用的物理内存占总内存的百分比

VSZ该进程占用的虚拟内存

RSS该进程占用的物理内存的总数量,单位是KB。

TTY虚拟终端

STAT进程状态

S代表休眠状态;

D代表不可中断的休眠状态;

R代表运行状态;

Z代表僵死状态;

T代表停止或跟踪状态

X代表死掉的进程

N代表低优先级

L代表有些页被锁进内存

+代表位于后台的进程组

l代表多线程,克隆线程

START开始时间

TIME运行时间

COMMAND命令

二、查看进程树,使用ptree

可以知道各进程之间的调用关系

效果如下

从以上可以看出,所以进程的开始是systemd

(注:Centos6是initd)

也可以加上选项,如下

-a:显示每个程序的完整指令,包含路径,参数或是常驻服务的标示;

-c:不使用精简标示法;

-G:使用VT100终端机的列绘图字符;

-h:列出树状图时,特别标明现在执行的程序;

-H:此参数的效果和指定"-h"参数类似,但特别标明指定的程序;

-l:采用长列格式显示树状图;

-n:用程序识别码排序。预设是以程序名称来排序;

-p:显示程序识别码;

-u:显示用户名称;

-U:使用UTF-8列绘图字符;

-V:显示版本信息。

常用的格式是 pstree -auhp

使用进程树查看的目的,主要是用来kill掉进程数

因为有一些(病毒)进程,会由父进程,不断的监控子进程,如果子进程被kill掉,就会马上启动新的子进程,所以,需要找到父子进程

三、查看当前系统运行的占用系统资源的状态,使用top命令

(TOP会【默认】间隔3秒刷新一次内存状态,由-d控制刷新频率)

效果如下

如果需要按占用内存的排序,则可以按 M 效果如下

如果需要按占用CPU来排序,可以按 P 效果如下

解释第一行

由上第一行知

当前时间21:20:15

已经运行了4:38

当前在线用户 2

平均负载 【1分钟前】【5分钟前】【15分钟前】

注意

负载不能太大,应该小于3*CPU核心数

如果超过了,就要检查是什么进程占用过多,或者是要考虑升级CPU了

解释第二行

总任务数114

运行中的任务数 1

休眠中的任务数 113

停止的任务数 0

僵尸任务数 0

解释第三行

us 用户空间占用CPU百分比

sy 内核空间占用CPU百分比

ni 用户进程空间内改变过优先级的进程占用CPU百分比

id 空闲CPU百分比

wa 等待输入输出的CPU时间百分比

hi CPU服务于硬件中断所耗费的时间总额

si CPU服务软中断所耗费的时间总额

st Steal time 虚拟机被hypervisor偷去的CPU时间(如果当前处于一个hypervisor下的vm,实际上hype

解释第四行

物理内存总量

使用的物理内存总量

空闲内存总量

用作内核缓存的内存量

注:centos6中 buff cache是分开说明的,

解释第五行

交换区总量

空闲交换区总量

已使用的交换区总量

可用的交换区总量

解释各列的情况

PID — 进程id

USER — 进程所有者

PR — 进程优先级

NI — nice值。负值表示高优先级,正值表示低优先级

VIRT — 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES

RES — 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA

SHR — 共享内存大小,单位kb

S — 进程状态。D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程

%CPU — 上次更新到现在的CPU时间占用百分比

%MEM — 进程使用的物理内存百分比

TIME+ — 进程使用的CPU时间总计,单位1/100秒

COMMAND — 进程名称(命令名/命令行)

四、要查看当前有哪些用户登录 使用命令 who

格式 who [选项]

-H或--heading  显示各栏位的标题信息列。

-i或-u或--idle  显示闲置时间,若该用户在前一分钟之内有进行任何动作,将标示成"."号,

如果该用户已超过24小时没有任何动作,则标示出"old"字符串。

-m  此参数的效果和指定"am i"字符串相同。

-q或--count  只显示登入系统的帐号名称和总人数

实例一

who 效果如下

实例二 常用

who -Ha

效果如下

由上得知

root用户,在系统引导界面登录

另外两个连接都是用户bob,使用终端连接

注:常用的命令是,先用who查出各连接,发现不正常的连接,就踢下线(当然要修改它的密码不让他再上来)

命令如下

pkill -kill -t pts/0

执行后,对应的终端会显示连接终断

建议,先检查bob的情况

使用命令cat /etc/shadow

我们把bob这个账号设置为不可登录

使用命令 usermod -s /sbin/nologin bob

再通过pkill命令把其他的连接全踢下线

这样,bob用户,就不能再登录了

注:可能有朋友会问,为什么不直接删除用户或者修改密码?

反正都可以吧。

因为处理事情的顺序问题而已,大家看喜欢怎么弄就怎么弄吧,我是喜欢先禁止登录,再踢下线,然后再慢慢考虑处理方案。

如果处理好后(比如修改了密码,略),再允许bob账号登录,就执行以下命令

usermod -s /bin/bash bob

这样bob就可以连接上来了

好了,完成。

欢迎留言指导。

喜欢的就关注我吧,谢谢

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180425A1VWD800?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券