Linux进程管理

linux进程管理

进程:

程序的一次运行。进程拥有独立的内存空间。拥有获取和释放内存的能力

僵尸进程:

当进程结束,内存没有释放,一直占用内存的进程。
在这里插入图片描述
  在上面的代码当中,主线程 mian在子线程都开启(start)之后输出main is end 然后结束,之后子线程接着运行,运行完成之后,没有释放内存,卡在这里。

查看进程

ps -aux查看系统进程
在这里插入图片描述

在这里插入图片描述

选项说明:
-a 显示所有用户的进程
-u 按照用户名和启动时间顺序进行排序显示
-x 无控制终端执行的进程
-e 显示所有进程,包括没有控制端的进程
-f 以树状结构显示

在这里插入图片描述
USER 进程的用户
PID 进程的唯一标识,通常用他杀死进程
%CPU cpu使用的%百分比
%MEM 内存使用的%百分比
VSZ 进程占用的虚拟内存的空间
RSS 驻留中页的数量
TTY 终端id,如果是?就是没有
STAT 进程的状态
  R 处于运行队列当中的进程
  S 处于睡眠状态的进程
  T 停止或者被追踪
  W 进行内存交换
  X 死掉的进程,重来没有见过
  Z 僵尸进程
  < 提高优先级
  +位于后台运行的进程
START 开始时间
TIME 执行的时间
COMMAND 进程执行的命令

top:查看系统状态
在这里插入图片描述
top每3秒刷新一次

上半部分是系统状态部分

Top-10:04:26 开始调用的时间
3 user 当前系统有3个用户
Load average: 0.14,0.05,0.06 系统的负载,队列的平均长度,1分钟之内的 5分钟之内 15分钟之内的
Task 任务
3 running 3任务在运行
180 sleeping 180个休眠
0 stopd 没有停止的
0 zombie 0个僵尸进程

下半部分是进程部分

使用python统计各个用户下的进程数:
在这里插入图片描述
改进:

import os

#os.system("ps -aux")
result = {}
with os.popen("ps -aux") as f:
    for i in f.readlines():
        user = i.split(" ",1)
        #print(user)
        if len(user) >= 2:
            #print(user[0])
            if user[0] in result:
                result[user[0]] += 1
            else:
                result[user[0]] = 1
#print(result)
for k,v in result.items():
   print("用户名:%s____进程数量:%s"%(k,v))

在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值