进程及计划任务

进程的概念:

在Linux系统当中所有的命令都有操作或者运行权限,同一个命令对于不同用户就有不同权限,这些权限都属于文件的属性信息。因此我们也大概知道,在Linux系统当中,触发一个事件时,系统都会将他定义成一个进程。

内核的功用:进程管理、文件系统、网络功能、内存管理、驱动程序、安

全功能等

Process: 运行中的程序的一个副本,是被载入内存的一个指令集合

进程ID(Process ID,PID)号码被用来标记各个进程

UID、GID、和SELinux语境决定对文件系统的存取和访问权限,

通常从执行进程的用户来继承

存在生命周期

task struct:Linux内核存储进程信息的数据结构格式

task list:多个任务的的task struct组成的链表

进程创建:

init:第一个进程

父子关系

进程:都由其父进程创建,CoW

fork(), clone()

根据进程与系统终端的关系可将进程分为:守护进程和前台进程

守护进程:在系统引导的过程中启动的进程,即跟终端无关的进程。

前台进程:跟终端相关,通过终端启动的进程,需要注意的是,也可以把在前台启动的进程送往后台,

进程在被内核调度的过程中的状态也可分为好多种:运行态,

就绪态,

睡眠态 :可中断睡眠

不可终端睡眠:通常是被指IO阻塞的进

程,等待IO满足之前无法继续运行

僵死态 :孤魂野鬼,找不到归宿,父进程不来收

尸或者父进程已经挂了

停止态: stopped不可被调度并运行

进程优先级:

系统优先级:数字越小,优先级越高

0-139(CentOS4,5)

各有140个运行队列和过期队列

0-98,99(CentOS6)

实时优先级: 99-0:值最大优先级最高

nice值:-20到19,对应系统优先级100-139或99

Big O:时间复杂度,用时和规模的关系

O(1), O(logn), O(n)线性, O(n^2)抛物线, O(2^n)

进程的分类:

CPU-Bound:CPU密集型,非交互

IO-Bound:IO密集型,交互

Linux系统状态的查看及管理工具:pstree, ps, pidof,

pgrep, top, htop, glance, pmap, vmstat, dstat, kill,

pkill, job, bg, fg, nohup

pstree命令:

pstree - display a tree of processes

ps: process state

ps - report a snapshot of the current processes

Linux系统各进程的相关信息均保存在/proc/PID目录下

的各文件中

进程的相关命令: top pstree ps pidof pgrep pkill htop glances pmap vmstat dstat iostat sar

kill job bg fg等

ps:查看系统的信息

适用ps来查看进程信息

ps [OPTION]...

支持三种选项:

UNIX选项 如-A -e

BSD选项 如a

GNU选项 如--help

选项:默认显示当前终端中的进程

a 选项包括所有终端中的进程

x 选项包括不链接终端的进程

u 选项显示进程所有者的信息

f 选项显示进程的父进程

k|--sort 属性 对属性排序

o 属性… 选项显示定制的信息

pid、comm、%cpu、%mem、state、tty、euser、ruser

常用的组合方式:

1.ps -ef 以完整的信息显示所有进程的信息

2.ps aux

3.ps axo

psr:当前进程运行的cpu

pri:当前进程的优先级

ni:显示当前进程的nice值

uptime

显示当前时间,系统已启动的时间、当前上线人数,系统平

均负载(1、5、10分钟的平均负载,一般不会超过1)

系统平均负载:

指在特定时间间隔内运行队列中的平均进程数

通常每个CPU内核的当前活动进程数不大于3,那么系统

的性能良好。如果每个CPU内核的任务数大于5,那么此

主机的性能有严重问题

如果linux主机是1个双核CPU,当Load Average 为6的

时候说明机器已经被充分使用

进程管理工具:

top

op:有许多内置命令:

排序:

P:以占据的CPU百分比,%CPU

M:占据内存百分比,%MEM

T:累积占据CPU时长,TIME+

首部信息显示:

uptime信息:l命令

tasks及cpu信息:t命令

cpu分别显示:1 (数字)

memory信息:m命令

退出命令:q

修改刷新时间间隔:s

终止指定进程:k

保存文件:W

top命令

us:用户空间

sy:内核空间

ni:调整nice时间

id:空闲

wa:等待IO时间

hi:硬中断

si:软中断(模式切换)

st:虚拟机偷走的时间

-d #: 指定刷新时间间隔,默认为3秒

-b: 全部显示所有进程

-n #: 刷新多少次后退出

htop界面所支持的一些交互式命令:

htop命令:需从Fedora-EPEL源安装

http://172.16.0.1/fedora-epel/7/x86_64

选项:

-d #: 指定延迟时间;

-u UserName: 仅显示指定用户的进程

-s COLUME: 以指定字段进行排序

子命令:

s: 跟踪选定进程的系统调用

l: 显示选定进程打开的文件列表

a:将选定的进程绑定至某指定CPU核心

t: 显示进程树

内存工具

vmstat命令:虚拟内存信息

vmstat [options] [delay [count]]

vmstat 2 5

procs:

r:可运行(正运行或等待运行)进程的个数,和核心数有关

b:处于不可中断睡眠态的进程个数(被阻塞的队列的长度)

memory:

swpd: 交换内存的使用总量

free:空闲物理内存总量

buffer:用于buffer的内存总量

cache:  用于cache的内存总量

swap:

si:从磁盘交换进内存的数据速率(kb/s)

so:从内存交换至磁盘的数据速率(kb/s)

io:

bi:从块设备读入数据到系统的速率(kb/s)

bo: 保存数据至块设备的速率

system:

in: interrupts  中断速率,包括时钟

cs: context switch  进程切换速率

cpu:

us:Time spent running non-kernel code

sy: Time spent running kernel code

id: Time spent idle. Linux 2.5.41前,包括IO-wait time.

wa: Time spent waiting for IO.  2.5.41前,包括in idle.

st: Time stolen from a virtual machine.  2.6.11前, unknown.

选项:

-s: 显示内存的统计数据

iostat:

统计CPU和设备IO信息

示例:iostat 1 10

pmap命令:进程对应的内存映射

pmap [options] pid [...]

-x: 显示详细格式的信息

示例: pmap 1

另外一种实现:

cat /proc/PID/maps

系统监控工具:glaces

glaces:是一款用于Linux,BSD的开源命令系统监控工具,它使用python语言开发,能够监视cpu,负载,                内存,磁盘io,网络流量,文件系统,系统温度等信息

glaces:

常用选项:

-b: 以Byte为单位显示网卡数据速率

-d: 关闭磁盘I/O模块

-f /path/to/somefile: 设定输入文件位置

-o {HTML|CSV}:输出格式

-m: 禁用mount模块

-n: 禁用网络模块

-t #: 延迟时间间隔

-1:每个CPU的相关数据单独显示

系统监控工具

C/S模式下运行glances命令

服务器模式:

glances -s -B IPADDR

IPADDR: 指明监听的本机哪个地址

客户端模式:

glances -c IPADDR

IPADDR:要连入的服务器端地址

dstat命令:系统资源统计,代替vmstat,iostat

dstat [-afv] [options..] [delay [count]]

-c: 显示cpu相关信息

-C #,#,...,total

-d: 显示disk相关信息

-D total,sda,sdb,...

-g:显示page相关统计数据

-m: 显示memory相关统计数据

-n: 显示network相关统计数据

-p: 显示process相关统计数据

-r: 显示io请求相关的统计数据

-s: 显示swapped相关的统计数据

at任务

包:at

at命令:at [option] TIME

常用选项:

-V 显示版本信息:

-l: 列出指定队列中等待运行的作业;相当于atq

-d: 删除指定的作业;相当于atrm

-c: 查看具体作业任务

-f /path/from/somefile:从指定的文件中读取任务

-m:当任务被完成之后,将给用户发送邮件,即使没有标准输出

注意:作业执行命令的结果中的标准输出和错误以邮件通知给相关用户

TIME:定义出什么时候进行 at 这项任务的时间

HH:MM [YYYY-mm-dd]

noon, midnight, teatime(4pm)

tomorrow

now+#{minutes,hours,days, OR weeks}

at时间格式

HH:MM  02:00

在今日的 HH:MM 进行,若该时刻已过,则明天此时执行任务

HH:MM YYYY-MM-DD   02:00 2016-09-20

规定在某年某月的某一天的特殊时刻进行该项任务

HH:MM[am|pm] [Month] [Date]

04pm March 17

17:20 tomorrow

HH:MM[am|pm] + number [minutes|hours|days|weeks]

在某个时间点再加几个时间后才进行该项任务

now + 5 minutes

rax02pm + 3 days

at任务的执行方式:

1)交互式 2)输入重定向 3)at –f 文件

依赖与atd服务,需要启动才能实现at任务

at队列存放在/var/spool/at目录中

/etc/at.{allow,deny}控制用户是否能执行at任务

白名单:/etc/at.allow 默认不存在,只有该文件中的用户

才能执行at命令

黑名单:/etc/at.deny 默认存在,拒绝该文件中用户执行

at命令,而没有在at.deny 文件中的使用者则可执行

如果两个文件都不存在,只有 root 可以执行 at 命令

周期性任务计划cron

周期性任务计划:cron

相关的程序包:

cronie: 主程序包,提供crond守护进程及相关辅助工具

cronie-anacron:cronie的补充程序,用于监控cronie任

务执行状况,如cronie中的任务在过去该运行的时间点未能正常

运行,则anacron会随后启动一次此任务

crontabs:包含CentOS提供系统维护任务

计划任务

确保crond守护处于运行状态:

CentOS 7:

systemctl status crond

CentOS 6:

service crond status

计划周期性执行的任务提交给crond,到指定时间会自动运行

系统cron任务:系统维护作业

/etc/crontab

用户cron任务:

crontab命令

日志:/var/log/cron

计划任务

时间表示法:

(1) 特定值

给定时间点有效取值范围内的值

(2) *

给定时间点上有效取值范围内的所有值

表示“每...”

(3) 离散取值

#,#,#

(4) 连续取值

#-#

(5) 在指定时间范围上,定义步长

/#: #即为步长

计划任务

系统的计划任务:

/etc/crontab

/etc/cron.d/  配置文件

/etc/cron.hourly/  脚本

/etc/cron.daily/ 脚本

/etc/cron.weekly/ 脚本

/etc/cron.monthly/脚本

anacron系统

运行计算机关机时cron不运行的任务,CentOS6以后版本

取消anacron服务,由crond服务管理

对笔记本电脑、台式机、工作站、偶尔要关机的服务器及其

它不一直开机的系统很重要对很有用

配置文件:/etc/anacrontab,负责执行/etc/ cron.daily

/etc/cron.weekly /etc/cron.monthly中系统任务。

字段1:如果在这些日子里没有运行这些任务……

字段2:在重新引导后等待这么多分钟后运行它

字段3:任务识别器,在日志文件中标识

字段4:要执行的任务

由/etc/cron.hourly/0anacron执行

当执行任务时,更新/var/spool/anacron/cron.daily 文件

的时间戳

CentOS6使用/etc/cron.daily/tmpwatch定时清除临时文件

CentOS7使用systemd-tmpfiles-setup服务实现

配置文件:

/etc/tmpfiles.d/*.conf

/run/tmpfiles.d/*.conf

/usr/lib/tmpfiles/*.conf

/usr/lib/tmpfiles.d/tmp.conf

d /tmp 1777 root root 10d

d /var/tmp 1777 root root 30d

命令:

systemd-tmpfiles –clean|remove|create  configfile

用户cron:

crontab命令定义,每个用户都有专用的cron任务文件:

/var/spool/cron/USERNAME

crontab命令:

crontab [-u user] [-l | -r | -e] [-i]

-l: 列出所有任务;

-e: 编辑任务;

-r: 移除所有任务;

-i:同-r一同使用,以交互式模式移除指定任务

-u user: 仅root可运行,指定用户管理cron任务

控制用户执行计划任务:

/etc/cron.{allow,deny}

at和crontab

一次性作业使用 at

重复性作业使用crontab

计划任务

注意:运行结果的标准输出和错误以邮件通知给相关用户

(1) COMMAND > /dev/null

(2) COMMAND &> /dev/null

对于cron任务来讲,%有特殊用途;如果在命令中要使用%,

则需要转义,将%放置于单引号中,则可不用转义

时间: 2024-10-13 07:44:56

进程及计划任务的相关文章

Linux进程与计划任务

Linux进程与计划任务 linux进程及作业管理 进程 内核的功用:进程管理.文件系统.网络功能.内存管理.驱动程序.安全功能等特权操作模式切换(理想状态):70%CPU时间用户模式+30%CPU时间内核模式进程(Process):是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的存在生命周期的基本单位,是操作系统结构的基础.在早期面向进程设计的计算机结构中,进程是程序的基本执行实体:在当代面向线程设计的计算机结构中,进程是线程的容器.程序是指令.数据及其组织形式的描述

linux系统-进程管理-计划任务

linux系统-进程管理-计划任务 一 计划任务命令 1 at 某一时刻执行任务 2 batch 在系统负载不重的时候执行 3 cron 周期性执行 二 at命令及使用 1 at [-f文件名]时间 2 at [-d删除任务] 3 at [-l查看任务] 4 绝对计时法:hh:mm MM/DD/YY at 17:30 4/18/15 5 交互方式:at 9:00 6 使用命令文件的方式:生成文件at.script 使用at命令 at -f at.srcipt 9:00 4/18/15 or at

Linux入门-进程、计划任务

w load average: 0.12, 0.09, 0.02 1,5,15分钟的负载情况,0.8以下为正常 JCPU 对应的用户执行命令所占用的cpu时间 PCPU  执行当前命令占用的cpu时间 WHAT 对应的用户正在执行的命令 IDLE 对应的用户闲置的时间 ps 参数较多,可以先使用 ps --help查看参数. ps -aux,ps -le  所有用户进程的详细信息 TIME  进程启动依赖占用cpu的总时间 %CPU  占用cpu总时间的比分比 %MEM 占用总内存的比分比 实际

Linux系统管理10——进程和计划任务管理

Linux系统管理10——进程和计划任务管理 一.程序和进程的关系 1.程序 ·保存在硬盘.光盘等介质中的可执行代码和数据 ·静态保存的代码 2.进程 ·在CPU及内存中运行的程序代码 ·动态执行的代码 ·父.子进程:每一个进程可以创建一个或多个进程 二.静态查看进程统计信息 ps命令 1.ps aux 命令 (1)作用:以简单列表的形式显示出进程信息 (2)选项释义: a:显示当前终端下的所有进程信息,包括其他用户的进程 u:使用以用户为主的格式输出进程信息 x:显示当前用户在所有终端下的进程

实验:管理进程及计划任务

实验:管理进程及计划任务 实验环境 为了更好地了解和控制Linux服务器的有序运行,需要管理员熟悉进程管理和计划任务 设置的相关操作,以完成各种运行维护任务. 需求描述 管理系统中的进程. 使用kill命令终止postfix服务的运行. 查找系统中CPU占用率超过80%的进程,并强行终止该进程. 设置计划运行的系统管理任务. 每周一的早上7:50自动清空FTP服务器公共目录"/var/ftp/pub"中的数据. 每天晚上的10:30自动执行任务,完成以下操作:显示当前的系统时间并查看

linux中进程和计划任务的管理

前言: 在linux中,为了更好的了解和使服务器有序运行,管理员需要对进程和计划任务做相应的操作,以便能够更好的完成维护任务. 这里我们做一些简单的练习. 一.管理系统中的进程. (1)启动系统中的portmap服务,然后使用kill命令终止它的运行. Kill  进程的PID号 (2)查找系统中CPU占用率超过80%的进程,并强行终止该进程. 系统中一般是没有CPU超过80%的进程,可以从http://www.cpuburnin.com/downloads/cpuburn-in.tar.gz网

linux中的进程于计划任务管理

进程和计划任务管理 程序和进程的关系程序:保存在硬盘.光盘等介质中的可执行代码和数据:静态保存的代码进程:在 CPU 及内存中运行的程序代码:动态执行的代码:父.子进程:每个进程可以创建一个或多个进程基本命令1):ps命令(processes statistc):查看静态的进程统计信息格式: ps aux :ps –elf2):top命令:查看动态的进程排名信息3):pgrep命令:根据特定条件查询进程 PID 信息4):pstree命令:以树形结构列出进程信息格式:pstree –aup :p

进程和计划任务管理(纯理论,多学多看多思考)

小伙伴们一定特别期待进程和计划任务管理知识的汲取,本着为IT产业服务的原则,小编这就带领大家来收割一波. 一.查看进程 二.控制进程 三.at 一次性任务设置 四.crontab 周期性任务设置 一.查看进程 1.程序和进程的关系 保存在硬盘.光盘等介质中的可执行代码和数据 静态保存的代码 2.进程 在CPU及内存中运行的程序代码 动态执行的代码 父.子进程:每个进程可以创建一个或多个进程(一个进程中包含多个线程)具体关系如下(红框中黑色竖条状即为线程): 3.ps命令-查看静态的进程统计信息

进程和计划任务管理详解(现场实际演练、可跟做)

听说很多的小伙伴一直想要了解如何玩转进程和计划任务管理,小编这就来给大家演示一下. 一.进程查看就地演练 1.查看系统当前root用户的静态进程(方法1)其中USER指当前用户:PID 为进程号(PID为1的是init): %CPU.%MEN指cpu的占用率.内存占用率:VSZ.RSS为虚拟内存.物理内存占用:TTY : 终端(?为未知.大多本地加载为?):STAT : 当前进程状态(S可中断休眠进程.D不可中断休眠进程.s父进程.<代表优先级高.R运行进程.l代表多线性.N优先级低.Z僵尸进程

Linux系统中查看进程和计划任务管理

? 各位小伙伴们大家好,本次给大家带来的是Linux操作系统中的进程和计划任务的管理,首先大家都知道程序是保存在外部存储介质(如硬盘.光盘)中的可执行机器代码和数据的静态集合,而进程是在CPU及内存中处于动态执行状态的计算机程序,在Linux系统中,每个程序启动后可以创建一个或多个进程.例如:提供Web服务的httpd程序当有大量用户同时访问Web页面时,httpd程序可能会创建多个进程来提供服务.那么接下来我将会从以下几点来告诉大家在Linux的CentOS 7系统中是如何查看进程信息和控制进