linux一号进程和二号进程,Linux系统管理10——进程和计划任务管理(示例代码)

  • Post author:
  • Post category:linux


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

一、程序和进程的关系

1、程序

·保存在硬盘、光盘等介质中的可执行代码和数据

·静态保存的代码

2、进程

·在CPU及内存中运行的程序代码

·动态执行的代码

·父、子进程:每一个进程可以创建一个或多个进程

二、静态查看进程统计信息ps命令

1、ps aux命令

(1)作用:以简单列表的形式显示出进程信息

(2)选项释义:

a:显示当前终端下的所有进程信息,包括其他用户的进程

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

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

(3)示例:

20180110231514635491.png

2、ps -elf命令

(1)作用:以长格式显示系统中的进程信息,并且包含更丰富的内容

(2)选项释义:

-e:显示系统内的所有进程信息

-l:使用长(long)格式显示进程信息

-f:使用完整的(full)格式显示进程信息

(3)示例:

20180110231514659906.png

3、直接使用ps命令

直接执行不带任何选项的ps命令时,将只显示当前用户会话中打开的进程

20180110231514747800.jpg

4、查看某个进程的详细信息

(1)ps aux|grep“进程名称”

20180110231514759519.jpg

(2)ps -elf|grep“进程名称”

20180110231514767332.jpg

三、动态查看进程统计信息top命令

1、作用:top命令将会在当前终端以全屏交互式的界面显示进程排名,及时跟踪包括CPU、内存等系统资源占用情况,默认情况下三秒刷新一次,默认以CPU占用率排序。

2、常用选项:

-d:指定刷新的间隔时间,单位秒

-b:以批量处理模式操作,一般与-n同时使用

-n:指定循环显示的次数

-u:指定用户名

-p:指定进程号

3、各选项的使用示例:

(1)top -d指定刷新的间隔时间

[[email protected] ~]# top -d 5 【指定刷新间隔时间为5秒】

(2)top -b -n以批量处理模式操作同时指定循环显示的次数

20180110231514774168.jpg

此处省略部分内容

此处省略至结束

注意:当CPU占用率过高时,不应再直接执行top命令查看,可以将信息存入一个文件内查看,以免CPU占用率过高导致崩溃。操作如下

20180110231514785887.jpg

(3)top -u指定用户名

20180110231514794676.jpg

(4)top -p指定进程号

20180110231514800536.jpg

4、常用交互命令

P:根据CPU使用百分比大小进行排序(默认进入时即为此排序)

M:根据驻留内存大小进行排序

T:根据累积时间进行排序

k:终止一个进程

q:退出程序

r:重新安排一个进程的优先级别(-20~19)

5、解释:

20180110231514809325.png

top  –  16:58:24 【当前系统时间】

1:54 【系统已经运行1小时54分钟】

2 users 【当前登录2个用户】

load average:0.00,0.00,0.00 【系统平均负载:1分钟的,5分钟的,15分钟的】

Tasks:108  total 【任务:108个总进程】

1  running 【1个进程正在运行】

107  sleeping 【107个进程睡眠】

0  stoppd 【0个进程停止】

0  zombie 【0个僵尸进程(冻结进程)】

Cpu(s): 0.0%us 【用户控件占用CPU百分比】

0.0%sy 【内核空间占用CPU百分比】

0.0%ni 【用户进程控件内改变过优先级的进程占用CPU百分比】

100.0% 【空闲CPU百分比】

0.0%wa 【等待输入输出的CPU时间百分比】

0.0% hi 【】

0.0%si 【】

Men:1012352k total 【物理内存总量 1012352k】

465816k used 【使用了465816k的物理内存】

546536k free 【空闲546536k的物理内存】

61064k buffe 【61064k用作内核缓存】

Swap:2031608k total 【交换分区总量2031608k】

0k used 【没有使用交换分区】

2031608k free 【空闲的交换分区总量2031608k】

267580k cache 【缓冲的交换分区总量267580k】

PID:进程号

USER:进程所有者的用户名

PR:优先级

NI:nice值。负值表示高优先级,正值表示低优先级

VIRT:进程使用的虚拟内存总量,单位kb

RES:进程使用的、未被换出的物理内存大小,单位kb

SHR:共享内存大小,单位kb

S:进程状态

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

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

TIME+:进程使用的CPU时间总计,单位1/100秒

COMMAND:命令

四、查看进程信息

1、pgrep命令

(1)作用:根据特定条件查询PID信息

(2)常用选项:

-l:显示进程名

-U:指定特定用户

-t:指定终端

(3)示例:

20180110231514822998.jpg

2、pstree命令

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

(2)常用选项:

-a:显示完整信息

-u:列出对应用户名

-p:列出对应PID号

(3)示例:

20180110231514826904.jpg

五、进程的启动方式

1、手工启动:

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

(2)后台启动:在命令行尾加入“&”符号

·示例:

20180110231514836670.jpg

(3)进程的前后台调度

1>Ctrl+Z 将当前进程挂起,即调入后台并停止执行

2>jobs命令 查看处于后台的任务列表,加-l同时显示PID号

3>fg命令 将后台进程恢复到前台运行,可指定任务程序号

4>bg命令 将后台暂停的进程调至后台运行

·示例:

20180110231514845460.jpg

(4)终止进程的运行

1>Ctrl+C 中断正在执行的命令

2>kill、killall命令

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

killall用于终止指定名称的所有进程

-9选项用于强制终止

示例:

20180110231514882570.jpg

20180110231514891360.jpg

3>pkill命令

·作用:根据特定条件终止相应的进程

·常用选项:

-U:根据进程所属的用户名终止相应进程

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

示例:

20180110231514911868.jpg

20180110231514928471.jpg

2调度启动

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

1>服务脚本:/etc/init.d/atd

2>设置格式:at [HH:MM] [yyyy-mm-dd]设置当天的任务计划可不加日期

3>基本操作:

Ctrl+D 保存退出

atq 查询现有的一次性任务计划

atrm [任务序号]删除第几项任务

4>示例

【设置在今天的18:40自动执行:统计该时间点系统中由root用户运行的进程数量,并将该数值保存到/tmp/ps.root文件中】

20180110231514938237.jpg

20180110231514950932.jpg

【设置在2017年5月09日03:58自动关机】

20180110231515036873.jpg

20180110231515038826.jpg

【设置七天后晚上22:00自动关机】

20180110231515074961.png

【设置明天晚上22:00重启httpd服务 】

20180110231515082773.png

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

1>脚本名称:/etc/init.d/crond

2>主要配置文件:

·全局配置文件:/etc/crontab

20180110231515091563.png

·系统默认的设置:/etc/cron.*/

20180110231515099376.png

·用户定义的设置:/var/spool/cron/用户名

3>管理cron计划任务

·编辑:crontab -e [-u用户名]

·查看:crontab -l [-u用户名]

·删除:crontab -r [-u用户名]

注意:-u选项只有root用户可用

4>crontab任务配置的格式

20180110231515111095.png

5>时间数值的特殊表示方法

* 表示该范围内的任意时间

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

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

/ 指定间隔的时间频率

20180110231515123791.png

示例:

每天早上7:50自动开启sshd,22:50关闭

每隔5天清空一次FTP服务器公告目录/var/ftp/pub

每周六7:30重启httpd服务

每周一、三、五的17:30打包备份/etc/httpd目录

20180110231515131603.png

注意:命令建议使用绝对路径