天天看点

Linux系统中查看进程和计划任务管理首先我们了解一下程序和进程的关系:一.查看进程二.控制进程三.at一次性任务设置四.crontab周期性任务设置

 各位小伙伴们大家好,本次给大家带来的是Linux操作系统中的进程和计划任务的管理,首先大家都知道程序是保存在外部存储介质(如硬盘、光盘)中的可执行机器代码和数据的静态集合,而进程是在CPU及内存中处于动态执行状态的计算机程序,在Linux系统中,每个程序启动后可以创建一个或多个进程。

例如:提供Web服务的httpd程序当有大量用户同时访问Web页面时,httpd程序可能会创建多个进程来提供服务。那么接下来我将会从以下几点来告诉大家在Linux的CentOS 7系统中是如何查看进程信息和控制进程的。

1、查看进程

2、控制进程

3、at一次性任务设置

4、 crontab周期性任务设置

首先我们了解一下程序和进程的关系:

程序

  • 保存在 、光盘等介质中的可执行代码和数据
  • 静态保存的代码

    进程:

  • 在CPU及内存中运行的程序代码
  • 动态执行的代码
  • 父、子进程:每个进程可以创建一个或多个进程

    这里给大家补充一个知识点:线程和进程的关系

  • 每一个进程中包含多个线程,进程是线程的集合

    具体关系可以如下图所示:

    Linux系统中查看进程和计划任务管理首先我们了解一下程序和进程的关系:一.查看进程二.控制进程三.at一次性任务设置四.crontab周期性任务设置

一.查看进程

ps命令(查看静态的进程统计信息Processes Statistic)

 是Linux系统中最为常用的进程查看工具,主要用于显示包含当前运行的各进程完整信息的静态快照,通过不同的命令选项,可以有选择性的查看进程信息

ps -aux(将以简单列表形式显示出进程信息):

a:查看系统当中的所有进程

u:代表指定用户

x:该用户在所有终端下的进程(tty终端,ps/0远程终端)

如果我们想查看root用户当前系统下运行的进程有哪些,输入:

ps aux

,得到如下界面:

Linux系统中查看进程和计划任务管理首先我们了解一下程序和进程的关系:一.查看进程二.控制进程三.at一次性任务设置四.crontab周期性任务设置

我们来说一下各字段的含义描述:

1、USER:用户

2、PID:进程号(ls -l | grep init可以看到init的软链接,1进程为init)

3、%CPU:进程的cpu占用率

4、%MEM:进程的内存占用率

5、VSZ:虚拟内存占用

6、RSS:物理内存占用

7、TTY:终端(?代表未知,大多为本地)

8、STAT:当前进程状态,其中

“S”:可中断休眠进程

“D”:不可中断休眠进程

“s”:父进程

“<”:代表优先级高

“N”:代表优先级低

“R”:代表正在运行的进程

“I”:多线性进程

“Z”:僵尸进程

“+”:前台进程

9、START:启动时间

10、TIME:进程占用cpu的总时间

11、COMMAND:进程的名称

ps -elf(将以长格式显示系统中的进程信息):

e:当前系统内的所有进程信息

l:使用长格式显示进程信息

f:使用完整的格式显示进程信息

Linux系统中查看进程和计划任务管理首先我们了解一下程序和进程的关系:一.查看进程二.控制进程三.at一次性任务设置四.crontab周期性任务设置

我们来说一下和上面不相同的各字段的含义描述:

1、PPID:当前进程的父进程

2、PIR:用户态(人可以进行交互额)优先级

3、NI:内核态优先级(-20~19,数值越低优先级越高)

4、ADDR:-代表正在运行

5、SZ:占用swap交换分区的容量

6、WCHAN:当前进程内核态的名称

7、CMD:命令名称

top命令(查看进程动态信息)

 使用ps命令查看到的是一个静态的进程信息,并不能连续的反馈出当前进程的运行状态,若希望以动态刷新的方式显示各进程的状态信息,可以使用top命令,该命令将会在当前终端全屏交互式的界面显示进程排名,及时跟踪包括CUP、内存等系统资源占用情况,默认情况下每隔3秒刷新一次,其作用类似于windows系统中的“任务管理器”。

输入top得到如下界面:

Linux系统中查看进程和计划任务管理首先我们了解一下程序和进程的关系:一.查看进程二.控制进程三.at一次性任务设置四.crontab周期性任务设置

表中的信息表述含义如下:

1、total:总进程数

2、running:正在运行的进程数

3、sleeping:休眠的进程数、

4、stopped:中止的进程数

5、zombie:僵死无响应的进程数

6、%Cpu(s):CPU占用信息,其中:

“us”:用户占用

“sy”:内核占用

“ni”:内核调度优先级

“id”:空闲空间占用

“wa”:IO读写占用

“hi”:硬线程占用

“si”:软线程占用

“st”:虚拟化占用

7、Men:内存占用信息,其中:

“total”:总内存空间

“free”:空闲内存

“used”:已用内存

“buff/cahce”:缓存占用

8、Swap:交换空间占用,其中:

“total”:总交换空间

“free”:空闲交换空间

“used”:已用交换空间

“avail men”:物理占用

pgrep命令(查询进程信息):

 当使用ps命令查询某个进程新的PID信息时,往往需要配合grep命令对输出结果进行过滤,但这样使用非常不方便,而pgrep命令则正是用来查询特定进程信息的专用工具,使用pgrep命令可以根据进程的名称、运行该进程的用户、进城所在的终端等多种属性查询特定进程的PID号。

常见的选项:

-l

:既显示PID也显示进程名

Linux系统中查看进程和计划任务管理首先我们了解一下程序和进程的关系:一.查看进程二.控制进程三.at一次性任务设置四.crontab周期性任务设置

-U

:查看指定用户的进程,此处例如zhangsan

Linux系统中查看进程和计划任务管理首先我们了解一下程序和进程的关系:一.查看进程二.控制进程三.at一次性任务设置四.crontab周期性任务设置
此处需要注意的点:当查看指定用户的进程时,需要在虚拟机中先用zhangsan用户登录,因为只有登陆了系统才会加载进程,否侧是无法查看到的!

pstree命令(查看进程树):

 pstree命令可以输出Linux系统中各进程的树形结构,更加直观的判断出各进程之间的相互关系(父、子进程)。

常用选项:

-p:同时列出相对应的PID号

-u:列出相对应的用户名

-a:列出完整的命令信息

输入

petree -aup

得到当前系统的进程数,包括各进程对应的PID号、用户名、完整命令等信息,如下图所示:

Linux系统中查看进程和计划任务管理首先我们了解一下程序和进程的关系:一.查看进程二.控制进程三.at一次性任务设置四.crontab周期性任务设置

二.控制进程

进程的启动方式

1、手工启动

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

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

后台启动举例:

当使用cp命令从光盘中制作镜像文件时,由于需要复制的数据较多,耗时较长,因此可以结合&符号将复制操作放到后台运行,以便于用户可以继续执行其他命令操作,执行过程和结果如下:

[root@localhost~]#cp /dev/cdrom mycd/iso &

[1]28454

2、调度启动

使用at命令,是指一次性计划任务

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

进程的前后台调度

1、Ctrl+Z组合键:

 当Linux系统中的命令正在前台执行时,按Ctrl+Z组合键可以将当前进程挂起(调入后台并停止执行),这种操作在需要暂停当前进程并进行其他操作时特别有用。

2、jobs命令:

 需要查看当前终端中在后台运行的进程任务时,可以使用jobs命令,结合“-l”选项可以同时显示处该进程对应的PID号,在jobs命令的输出结果中,每一行记录对应一个后台进程的状态信息,首行的数字表示该进程在后台的任务编号。

3、fg命令:

 将后台进程恢复到前台运行,可指定任务序号,示例如下:

[root@localhost~]#jobs

[1]- Stopped cp/dev/cdrom mycd.iso

[2]+ Stopped top

[root@localhost~]#fg 1

终止进程的运行:

1、Ctrl+C组合键

中断正在执行的命令

2、

kill

killall

命令(跟号码,具有唯一性)

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

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

-9:选项用于强制终止

pkill命令

1.根据特定条件终止相应的进程

2.常用选项:

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

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

例如以下形式:

[root@localhost~]#pgrep -l -U“hackli”

[root@localhost~]#pkill -9 -U“hackli”

举例:我们在系统中登录zhangsan用户,进入桌面:

Linux系统中查看进程和计划任务管理首先我们了解一下程序和进程的关系:一.查看进程二.控制进程三.at一次性任务设置四.crontab周期性任务设置

如果此时我们想把张三用户踢出,使用Xshell界面登录的root账户下输入:

pkill -9 -U zhangsan

,敲回车,此时系统会自动跳回开机之后的用户登录界面,zhangsan用户的所有进程全部被终止:

Linux系统中查看进程和计划任务管理首先我们了解一下程序和进程的关系:一.查看进程二.控制进程三.at一次性任务设置四.crontab周期性任务设置

三.at一次性任务设置

格式:

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

具体执行操作如下:

1、[root@localhost~]#date(获取系统的当前时间)

2、2019年 08月 24日 星期六 16:08:24 CST

3、[root@localhost~]#at 16:12 2019-08-24(计划性时间要在系统当前时间之后)

4、at>ps aux | wc -l > /opt/ps.txt(确定执行的动作)

5、ctrl+d(提交)

6、atq(查看计划任务)

Linux系统中查看进程和计划任务管理首先我们了解一下程序和进程的关系:一.查看进程二.控制进程三.at一次性任务设置四.crontab周期性任务设置

到了计划时间之后输入:ls /opt/查看目录

此时显示计划的文件ps.txt被写入

Linux系统中查看进程和计划任务管理首先我们了解一下程序和进程的关系:一.查看进程二.控制进程三.at一次性任务设置四.crontab周期性任务设置

四.crontab周期性任务设置

crontab命令

1.crontab的配置文件和目录

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

属于周期性计划任务

主要设置文件

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

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

用户定义的设置,位于文件: /ar/5poo/cron/用户名

管理cron计划任务

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

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

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

定时编辑格式

Linux系统中查看进程和计划任务管理首先我们了解一下程序和进程的关系:一.查看进程二.控制进程三.at一次性任务设置四.crontab周期性任务设置

每个字段的说明:

分钟:取值为从0到59之间的任意整数

小时:取值为从0到23之间的任意整数

日期:取值为从1到31之间的任意整数

月份:取值为从1到12之间的任意整数

星期:取值为从0到7之间的任意整数,0或者7代表星期日

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

时间数值的特殊表示方法:

*

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

,

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

-

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

/

:指定间隔的时间频率

应用示例:

继续阅读