Linux--进程(查看进程、如何杀死进程、计划任务、后台运行)

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/weixin_44863429/article/details/100353765

进程

什么是进程:就是一次程序的执行,进程拥有获取内存和释放内存和释放内存的能力
僵尸进程:线程没有释放内存能力,当进程执行结束,线程没有结束,还在占用内存,导致当前进程卡在后台

1.查看进程

    ps查看进程,当前用户终端正在执行的进程
在这里插入图片描述
        -a 显示所有用户的所有进程
在这里插入图片描述
        -u 以用户的格式输出,按照进程启动时间进行排序
在这里插入图片描述
        -x 显示所有进程
在这里插入图片描述
(其实还有好多,没展示全)
        -e 显示所有进程包括没有终端的进程
在这里插入图片描述
        -f 显示进程先洗信息,树状格式来显示
在这里插入图片描述
在这里插入图片描述
        user:进程的名字
        pid:进程的唯一标识符,如果要杀死进程一般使用pid
        %cpu:cpu使用率
        %MEM:内存的使用率
        vsz:虚拟内存的大小
        RSS:驻留中页的数量
        TTY:终端
            ? 未知的终端
        STAT:进程的状态
            S 当进程处于休眠状态
            R 运行状态
            T 停止状态
            X 死掉的进程
            > 优先级
            Z 僵死的进程
        START:启动的时间
        Time:运行时间
        COMMAND:进程执行的命令
    top:仪表盘,每隔3秒自动刷新一次,使用q退出仪表盘
在这里插入图片描述
top - 20:18:07 当前时间
up 系统运行时间
3 user 当前用户数
load average:系统的负载
    0.08    0.07    0.12
    五分    10分钟    15分钟
tasks:任务数量
running:正在运行的进程数量
sleeping:休眠的进程数
zombie:僵死的进程

如何使用python统计每个用户的进程数
os.system() 调用系统命令
popen() 调用系统命令,将结果存入文件对象

import os
# 获取所有的进程信息
import os
#print(os.system('ps -aux'))
fobj = os.popen('ps -aux')  # 将结果存入文件对象
count = {}
with fobj as f:
    for i in f.readlines():
        #print(i.split(' '))
        if i.split(' ')[0] in count:
            count[i.split(' ')[0]] += 1
        else:
            count[i.split(' ')[0]] = 1

if 'USER' in count:
    del count['USER']

print(count)

统计内存使用量

2.如何杀死进程

    进程筛选:
        | 管道符,将前面的命令输出的结构,传给后面的命令作为参数使用
        grep 筛选
    kill -9 进程id号
    如果不知道pid号可以使用pkill:pkill -9 进程名

3.计划任务

计划任务是系统服务,所以在使用前要先启动服务
突发性任务at:临时性的任务,只执行一次
    1.启动服务
        systemctl start atd
    2.指定突发任务
        格式:at 时间 任务
        at now+10min 获取时间单位 min分钟 days 天
在这里插入图片描述
指定某一天执行突发任务,执行2019-9-3 14:10,执行init 3 at 14:10 2019-9-3
在这里插入图片描述
        ctrl+d 保存
        ctrl+c 撤销
        at -l 查看所有的突发任务
        atrm 任务id删除指定的突发任务
定时性任务 crontab:
    1.启动服务crond
    crontab 只能是root用户去编辑
        -u 指定用户
        -e 编辑定时任务
        -l 列出所有的定时任务
        -r 删除定时任务
    2.指定定时性任务
        crontab -uroot -e 回车后
在这里插入图片描述
在这里插入图片描述
每月的1-12,每周的1-7,每日的0-23,每小时的第一分钟执行命令

1 * * * *  mkdir /zhy/demo

每分钟执行一次

* * * * * mkdir /zhy/demo

每月的每周的每天晚上9点30分执行任务

30  21  *  *  *  命令

每月的1号,10号,22号每天的4点45分执行命令

45  4  1,10,22  *  *  命令

每天的18点到23点的整点和半点执行任务

0,30  18-23  *  *  *  命令

每一小时执行一次命令

*  */1  *  *  *  命令

执行python创建文件,每两分钟穿件一次

import time
with open('%s'%time.strftime('%H:%M:%S'),'w')as f:
    f.write('当前时间%s'%time.strftime('%Y-%m-%d %H:%M:%S'))

        /var/spool/mail 邮件的路径,当定时任务中的脚本报错,会将错误信息以邮件的形式发给用户

4.后台运行

    格式:命令 [属性] [参数] &
    如果有输出需要做重定向输出
    命令 [属性] [参数] > 文件 &
    & 后台运行
        重定向输出 >
        echo 输出
nohup
    nohup 命令 &
使用&执行之后,Ctrl+c并不会使你执行的程序停止。除非关闭终端才会停止程序运行
使用nohup后,而且使用Ctrl+c会使执行的程序消失,但还会在后台接着执行。当挂起终端时,未结束的程序会继续执行,直到退出或者关闭服务器。

猜你喜欢

转载自blog.csdn.net/weixin_44863429/article/details/100353765