进程

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

1.查看进程

    ps查看进程,当前用户终端正在执行的进程

linux keepalived如何查看当前运行状态_定时任务


        -a 显示所有用户的所有进程

linux keepalived如何查看当前运行状态_后台运行_02


        -u 以用户的格式输出,按照进程启动时间进行排序

linux keepalived如何查看当前运行状态_定时任务_03


        -x 显示所有进程

linux keepalived如何查看当前运行状态_后台运行_04


(其实还有好多,没展示全)

        -e 显示所有进程包括没有终端的进程

linux keepalived如何查看当前运行状态_后台运行_05


        -f 显示进程先洗信息,树状格式来显示

linux keepalived如何查看当前运行状态_定时任务_06


linux keepalived如何查看当前运行状态_后台运行_07


        user:进程的名字

        pid:进程的唯一标识符,如果要杀死进程一般使用pid

        %cpu:cpu使用率

        %MEM:内存的使用率

        vsz:虚拟内存的大小

        RSS:驻留中页的数量

        TTY:终端

            ? 未知的终端

        STAT:进程的状态

            S 当进程处于休眠状态

            R 运行状态

            T 停止状态

            X 死掉的进程

            > 优先级

            Z 僵死的进程

        START:启动的时间

        Time:运行时间

        COMMAND:进程执行的命令

    top:仪表盘,每隔3秒自动刷新一次,使用q退出仪表盘

linux keepalived如何查看当前运行状态_定时任务_08


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 天

linux keepalived如何查看当前运行状态_定时任务_09


指定某一天执行突发任务,执行2019-9-3 14:10,执行init 3 at 14:10 2019-9-3

linux keepalived如何查看当前运行状态_后台运行_10


        ctrl+d 保存

        ctrl+c 撤销

        at -l 查看所有的突发任务

        atrm 任务id删除指定的突发任务

定时性任务 crontab:

    1.启动服务crond

    crontab 只能是root用户去编辑

        -u 指定用户

        -e 编辑定时任务

        -l 列出所有的定时任务

        -r 删除定时任务

    2.指定定时性任务

        crontab -uroot -e 回车后

linux keepalived如何查看当前运行状态_后台运行_11


linux keepalived如何查看当前运行状态_启动服务_12


每月的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会使执行的程序消失,但还会在后台接着执行。当挂起终端时,未结束的程序会继续执行,直到退出或者关闭服务器。