进程和计划任务管理

一、程序和进程的关系

程序:保存在硬盘、光盘等介质中的可执行代码和数据。静态保存的代码

进程: 在CPU及内存中运行的程序代码。动态执行的代码,有父子进程。

每个程序可以创建一个或者多个进程。

以公司部命和员工来举例:

二、ps命令

1.1查看静态的进程统计信息 ps

[root@localhost ~]#ps aux

-a:显示当前终端下的所有进程信息,包括其他用户的进程。与“x”选项结合时将显示系统中所有的进程信息。

-u:使用以用户为主的格式输出进程信息

-x:显示当前用户在所有终端下的进程信息

注:ctrl +c是发送sigint信号中止一个进程,ctrl +z是发送sigstop信号,挂起一个进程。

ctrl +d表示输入完成或者注销

常用的选项组合;ps -aux

上述输出信息中,第一行为列表标题,其中各字段的含义描述如下。

USER:启动该进程的用户账号的名称。

PID:该进程在系统中的数字ID号,在当前系统中是唯一的。

%CPU:CPU占用的百分比。

%MEM:内存古用的百分比。

VSZ:该进程使用的虚拟内存量(KB)。

RSS:该进程占用的物理内存量(KB)。

TTY:表明该进程在哪个终端上运行。不是从终端启动的进程则显示为?。简说:pts是远程登录终端ctrl+ALT F1-F6 tty1 图像界面2和6字符界面 ?系统本身自身执行的进程G

STAT:该进程的状态(D:不可中断的休眠状态:R:正在运行状态;s:处于休眠状态,可被唤醒;T:停止状态,可能是在后台暂停或进程处于跟踪调试状态:Z:僵尸进程,进程已经中止,但是部分程序还在内存当中)
D:系统守护进程

T:调式、程序执行一般停止

R:该程序目前正在运作,或者是可被运作

s:该程序目前正在睡眠当中(可说是idle状态啦!),但可被某些讯号(siqnal)唤醒。

T:该程序目前正在侦测或者是停止了;

Z :该程序应该已经终止,但是其父程序却无法正常的终止他,造成 zombie(疆尸)程序的状态D不可中断状态.它们含意如下::

<:表示进程运行在高优先级上

N:表示进程运行在低优先级上

L:表示进程有页面锁定在内存中

s:表示进程是控制进程

1:表示进程是多线程的

+:表示当前进程运行在前台

D:系统守护进程

T调式、程序执行一般停止

START:启动该进程的时间。

TTME:该进程占用的CPU时间。

COMMAND:启动该进程的命令的名称

1.2示例:查看关于wuzu.txt的进程信息

第一步:vim wuzu.txt 首先创建文本并进入编辑

第二步:复制一个连接在新的连接中输入:ps -aux|grep wuzu.txt

第三步:ctrl +z停止编辑在一次查看状态发生变化

第四步:再次输入vim wuzu.txt 会显示保存信息E325:在次查看进程还在运行

第五步:kill -9 进程号杀死进程

(经常遇到)第六步:输入vim wuzu.txt:还是会报错因为有缓冲文件。解决办法删除缓冲文件rm -rf  .wuzu.txt.swp 再次进入即可编辑文本。

2.1查看静态的进程统计信息 ps

[root@localhost ~]#ps -elf

字段含义

一个字F段:内核分配给进程的系统标记

第二字段S:表示进程的状态

第三字段UID:启动用户

第四字段PID:进程id号

第五字段PPID:父进程的进程号

第六字段C:进程生命周期

第七字段PRI:进程优先级

第八字段NI:谦让度值参与决定优先级

第九字段ADDR:进程内存地址

第十字段SZ:进程所需交换空间大小

十一字段WCHAN:进程睡眠使用函数

十二字段STIME:进程启动时间

十三字段TTY:进程启动时终端设备

十四字段TIME:进程运行累计时间

十五字段CMD:进程的启动命令

2.2僵尸进程:

        一个进程结束了,但是如果该进程的父进程已经先结束了,那么该进程就不会变成僵尸进程,因为每个进程结束的时候,系统都会扫描当前系统中所运行的所有进程,看有没有哪个进程是刚刚结束的这个进程的子进程,如果是的话,就由Init来接管它,成为它的父进程,子进程退出后init会回收其占用的相关资源。但是当子进程比父进程先结束,而父进程又没有回收子进程,释放子进程占用的资源,此时子进程将成为一个僵尸进程。

2.3进程状态。常见的状态有以下几种:

-D:不可被唤醒的睡眠状态,通常用于I/0情况。

-R:该进程正在运行。

-S:"该进程处于睡眠状态,可被唤醒。

-T:停止状态,可能是在后台暂停或进程处于除错状态。

-W: 内存交互状态(从2.6内核开始无效)。

-X:死掉的进程(应该不会出现)。

-Z: 僵尸进程。进程已经中止,但是部分程序还在内存当中。

-<: 高优先级(以下状态在BSD格式中出现)。

-N: 低优先级。

-L: 被锁入内存。

-S: 包含子进程。

-1: 多线程(小写L)。

-+: 位于后台。

-C."进程占用CPU的百分比

2.4示例:ps -aux 和ps -elf的区别

 可以看出他们两的用处基本相同就是显示的数值有所不同

三、查看进程信息top

1.1top命令 :查看动态的进程排名信息

[root@localhost ~]# top

 参数信息:

上述输出信息中,开头的部分显示了系统任务(Tasks)、CPU占用、内存占用(Mem)、交换空间(Swap)等汇总信息,汇总信息下方依次显示当前进程的排名情况。相关信息的含义表述如下。 uptime:17:14:30 当前时间

up 31days 系统运行时间,说明此服务器连续运行 20天了

4 user当前登录用户数

load average: 0.00,0.01.0.03系统负载,即任务队列的平均长度。三个数值分别为1分钟、5分钟、15分钟前到现在的平均值。

系统任务(Tasks)信息:total,总进程数;running,正在运行的进程数;sleeping,休眠的进程数;stopped,中止的进程数;zombie,僵死无响应的进程数。

CPU占用信息:us,用户占用;sy,内核占用;ni,优先级调度占用;id,空闲CPU;wa,I/O等待占用;hi,硬件中断占用;si,软件中断占用;st,虚拟化占用。要了解空闲的CPU百分比,主要看%id部分。

内存占用(Mem)信息:total,总内存空间:free,空闲内存;used,已用内存;buff/cache,物理内存和交换内存的缓冲区总和。

交换空间(Swap)占用:total,总交换空间;free,空闲交换空间;used,已用交换空间;avail Mem,可用物理空间。

1.2详细说明

(1)Tasks:240 total进程总数

1 running 正在运行的进程数

240sleeping睡眠的进程数

1 stopped 停止的进程数

0 zombie 僵尸进程数

Cpu(s):0.01%us系统用户进程使用CPU百分比。

0.00%sy内核中的进程占用CU百分比优先级调度占用

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

99.9%号 id 空闲CPU百分比

0.0号wa

cpu 等待 /0 完成的时间总量。

(2)KIBMem:3861508 total 物理内存总量

798428 used使用的物理内存总量

2176632 free 空闲内存总量

886448 buff/cache用作内核缓存的内存量。和free-k一个意思

(3)KIBSwap:8191996 total交换区总量

0 used 使用的交换区总量

8191996 free 公闲交换区总量

2719732 availMem 总的可利用内存是多少

运行进程信息

PID:进程id

USER: 进程所有者的用户名

PR:优先级

 NI:进程优先级

VIRT:虚拟内存

RES:实际使用的物理内存

SHR:共享内存大小

S:进程状态(D=不可中断的睡眠状态,R=运行中或可运行s=睡眠中,T表示已跟踪以及已停止,z=僵停

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

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

TIME+: 进程使用的cpu时间总计

COMMAND:命令名/命令行

三、查看进程信息

3.1pgrep命令

根据特定的条件查询PID信息

pgrep -l “log”显示进程名

 pgrep -l -U  kgc  //-U指定特定用户   -t  指定终端

常用参数

-l:选项可同时输出对应的进程名以及PID

-U:选项查询特定用户的进程

-t:选项查询在特定终端运行的进程

3.2pstree命令

(1)以树形结构列出进程信息

 常用参数:

-p:选项使用时可以同时列出对应的PID号

-u:选项可以列出对应的用户名

-a:选项可以列出完整的命令信息

(2)示例:以树形结构列出zhuxuan用户的进程信息

 四、进程的启动方式

1.手工启动

前台启动:用户输入命令,直接执行程序

后台启动:在命令行加入&符号

[root@fbc ~]#cp /dev/cdrom mycd.iso & 
[1] 28454

输出信息中包括后台任务序号、PID号

调度启动

使用at命令,设置一次性计划任务

使用crontab命令,设置周期性计划任务

进程的前后台调度

Ctrl +Z 组合键

将当前程序挂起,即调入后台并停止执行

2.jobs命令

查看处于后台的任务列表

fg命令

将后台进程恢复到前台运行,可指定任务序列号

 五、进程的中止运行

1.Ctrl +C组合键

中止正在执行的命令

2.kill 、killall命令

kill用于中止指定PID号的进程

killall用于中止指定名称的所以进程

-9选项用于强制中止

示例

kill 用于指定PID号的进程

 killall用于中止指定名称的所以进程

 3.pkill命令

根据特定条件中止相应的进程

常用命令选项:-U:根据进程所属的用户名中止相应进程

                         -t :根据进程所在的终端终止相应进程

pkill 指定用户 kill指定进程

示例:

 六、计划任务管理

1.计划任务一般用来干什么?

(1)定期备份web数据库

(2)定期采集检测数据

(3)find 5天以外的数据删除微服务java (日志)

2.at命令

一次性计划任务

at [HH:MM] [yyyy-mm-dd]

示例1:

示例二:

 atq命令:可以查看我计划的进程信息

atrm 进程号:可以删除计划进程


3.crontab命令

3.1概述

按照预先设置的时间周期(分钟:小时:日:月:周)重复执行用户指定的命令操作

属于周期性计划任务

主要设置文件

  :全局配置文件,位于文件:/etc/crontab

  :系统默认的设置,位于文件:/etc/cron.*/

  :  用户定义的设置。位于文件:/var/spool/cron/用户名

注:crontab守护进程会自动检测/etc/crontab文件/etc/cron.d目录及/var/spool/cron/目录中的改变,如果发现配置有更改,它们会背载入内存,所有放某个crontab文件改变后并且不需要重新启动crond守护进程就可以设置生效。

3.2crontab命令

编辑计划任务:crontab -e [-u 用户名]

查看计划任务:crontab -l  [-u 用户名]

删除计划任务:crontab -r  [-u 用户名]

3.3时间格式

 分钟:0-59

小时:0-23

日期:1-31

月份:1-12

星期:0-7,0或7代表星期日

命令:要执行的命令或程序脚本

特殊表示方法:

*   表示范围内的任意时间

,表示间隔的多个不连续时间点

-   表示一个连续的时间范围

/   指定间隔的时间频率

示例1:设置循环关闭sshd.service

(1)输入corntab -e进入编辑 输入关闭sshd服务的代码

(2)corntab -l 查看

  (3)断开shell重新连接

(4)打开虚拟机重启sshd服务

(5)重新连接虚拟机

 示例2:指定用户创建备份计划任务

(1)创建用户 创建文件夹backup1

(2)进入用户系统crontab -e创建计划任务

(3)查看计划任务crontab -l

(4)  查看文件用户下面的backup1

 总结

查看进程的命令(ps,top、pgrep、pstree)

进程控制 :  启动进程、调度进程、终止进程

at命令设置计划任务

crontab计划任务的配置字段

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值