进程和任务管理

目录

一、程序、进程、线程

二、查看进程信息

1.ps

2、top

3、pgrep

4、pstree

三、进程的启动与终止

1、手动启动

2、进程的前后台调度

3、终止进程

四、计划任务管理

1、at

2、crontab

总结


一、程序、进程、线程

内核:内核的功能较多,包括但是不限于下面几种,进程管理、内存管理、文件系统、网络功能、驱动程序、安全功能等一系列功能

1、程序:程序是一种保存在硬盘、光盘等介质中静态保存的代码或者数据

2、进程:是在CPU以及内存中动态执行的程序代码,通常每个程序都可以创建一个或者多个进程

3、线程:是操作系统中能够进行调度的最小的单位,它被包含在进程中,是进程中实际运转的部分。一个进程中至少有一个线程才能正常运转,是进程内的一部分

总结一下就是:程序是存储在硬盘中的一串代码,只有在运转之后才会动态的形成进程,进程在接到这个任务之后会转交给手下的线程来进行处理任务。

二、查看进程信息

1.ps

查看进程的方法有多种,其中一个是——PS是一个能够查看静态进程并且统计出来的命令。

命令的格式也是非常的简单 就是ps加上选项就可以了,其中一个用法的选项也只有3项

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

因为现在系统刚打开,当前终端下还只有三个进程,其中还有一个是ps 。

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

 简单来说就是显示详细的信息,跟上面的单独a选项的命令对比一下,就会发现,u选项比a选项多了不少属性。

x:显示当前用户在所哟终端下的进程信息,这个比较多,就不全部截图了

 下面还有,是显示当前用户的所有进程,不限于当前终端。

一般情况下,ps都是跟aux三个选项一起使用,三个选项都不会单独拿出来使用。

 就像这样,三个选项一起使用,查看用户的详细的进程信息,不过是静态的,读取一次就是一次的信息,想要新的只能再进行读取一次。

ps的另一个用法也是比较简单,同样也是只有三个选项,代表的含义也是相差不远。

-e:显示系统中的所有进程

 简单干脆,就是字面意思,直接把系统中的所有进程显示出来。

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

 这个跟上面那个u差不多,都是显示出来进程的详细属性,方便查看。

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

 将进程的信息按照统计好的格式显示出来,看着更加的便捷

这三个也是跟上面三人组一样,一般都不会单独出现,都是“三人帮”,一起为ps服务

 两个方式查看的表格,每列代表的含义大多都不一致,但是因为比较多,我就不一个一个都拉出来遛遛弯,知道代表的含义不一致就行了。

上面两个方式就是静态查看进程信息的方式。

2、top

另外一种就是比较常用的动态查询进程信息的命令——top

这个命令没什么说的,就只有一个命令,没有常用的选项,一般都是单独一个命令拿出来使用。

 这个其实是每隔几秒就在跳动,懒得去截动图,感兴趣的可以去试一下top,是一个动态查看进程的命令,按Ctrl+C终止。

3、pgrep

这个与其说是查看进程信息不如说是查找进程

是通过pgrep命令来进行查找目标进程的PID(好方便你用这个PID关闭这个进程)

所以准确来说这个是个查找的命令

格式跟也比较简单,常用的命令也只有 -l

 就是筛选出所有包含kw的进程并且显示出来,如果不加 -l就是只显示PID,不会显示后面的名字。也可以在条件的位置变成用户的名字,命令格式是 pgrep -l -u name   就能筛选出用户name(name指任意以存在的用户)下面的所有进程。

4、pstree

这个查找进程的方式我认为还蛮不错,是一个能直接以树状结构查看所有进程的命令,能够清晰看到一个进程下面有没有子进程。

pstree命令格式是 pstree [选项]

就可以了,常用的选项也比较少,只有三个,感兴趣也可以去man手册看看别的。

-a 是显示详细的信息

-u 是列出来对应的用户名

-p 是列出对应的PID号

默认情况下,正在进程的信息是放在根目录下的 proc中,以数字开头的文件夹的形式存放,这个数字就是进程的PID。

进入目标PID的文件夹之后,会发现一系列的文件跟文件夹

 上面几种都是不同功能的查找的方式,都是比较常用的命令。

三、进程的启动与终止

前面说的是查找进程的方式,下面还有启动进程或者终止进程的方式,先来一个一个说吧

1、手动启动

手动启动大致分为两种,就是前台启动跟后台启动

前台启动是在你运行进程的时候,命令先显示在页面上,在命令执行完之前是不能进行任何操作的,下面这串命令是我随便找的一个,复制的多的文件,但是数量还是不是太多,所以进程有点快

 就是在执行这个命令的过程中,是不能进行操作的只能终止或者等命令执行结束,就算此时敲了命令,也只能在此时的进程结束之后才能生效

后台启动,顾名思义,跟前台启动相反,是在启动进程之后挂在后台,是不影响你的正常操作的,使用的方式也很简单,只需要在命令串后面跟上 & 符号就可以。

 还是之前的命令,设置为后台启动之后,你在前面还是能正常操作,等命令执行完成之后,会在你下次操作的后面提示,该命令已经执行完毕。所以在运行较大数据的文件的时候,还是将程序放在后台运行比较好。

2、进程的前后台调度

ctrl+z

是将当前正在运行的进程挂起,调度到后台并且停止

 jobs

是查看处于后台的任务,前面已经查看两次了

 查看现在有多少进程在后台挂着或者运行。

fg

再加上任务的序列号,就是第一列的数字,可以将后台的进程恢复到前台并且运行。

 这三个对于处理进程也是非常重要,时常能遇到。

3、终止进程

终止进程的方式

第一种就很简单 ctrl+c,可以退出或者停止执行的任务,这个我就不演示了。

第二种是 kill

kill的使用的格式是: kill  任务的PID号   可以终止掉单个的进程

 先找到要关闭的进程的PID,这里我是随便找的一个进程,然后用kill 加PID号,结束这个进程

 在选择结束进程之后,会发现,进程结束不了。

因为这个进程正在别的地方运行着,是在用着的程序,是终止不了的。

如果非要删除这个命令不可,这个命令运行着影响服务器的正常运行,可以使用 kill -9 +PID 强制终止这个进程。

 第三种是 pkill

 这个是上面kill的加强版,是选择性的范围清除,常用的选项有下面这个

-u:根据用户来进行终止进程,例如张三用户下面运行着三个进程,可以用 pkill -u zhangsan 一次性全部清除,除了环境的进程清不掉,例如 bash,这个就是用这个范围清除清不了的。

 这个举例的我就随便弄了一个进程演示一下。

四、计划任务管理

计划任务总的分为两种,第一种是一次性的任务,第二种是周期性的任务

第一种可以理解为手机上的闹钟,一种是你考试之类的需要早起一次,设置的一个只响一次的闹钟,响一次之后,自动关闭。

第二种就是你在上班,上学的时候,每天都在固定的时间点起床之类的,就是用手机设置一个每周几的几点定时响。闹钟就每次响完就待机,直到下次条件满足,也就是周几的时候的几点响,是一直都在运行的计划任务

一次性任务的命令就很简单

1、at

一次性计划任务的格式是:at 小时:分钟 年-月-日

 

是在2021年的9月17日的7点20分执行下面的命令,下面的命令也就是删除根目录下的所有文件

确定输好命令之后按ctrl+d运行这个计划就可以了

如果不确定是否创建成功可以用   atq   查看

 可以根据日期对比是不是我们刚刚创建的计划

如果不想要这个计划,可以用   atrm   删除

删除的步骤非常简答,用上面的命令查看信息,并且看到计划的 ID ,就是第一列的数字

然后   atrm 2  这样就解除了任务

 可以看到,直接就可以删除掉一个计划,就像是你睡觉之前临时接到通知,明天不用早起,就顺手把单次的闹钟关闭的时候。

周期性的计划任务比较复杂一些

2、crontab

周期性计划任务的配置格式是在配置文件中,位置处于 /etc/下的文件 crontab文件中

 打开文件之后可以在下面看到一个小图标,就是周期性计划任务的书写格式

顺序是自上而下,依次是:分钟 小时 日期 月份 周几(这个比较特殊,准确来说数字是0-7,但是0跟7代表的都是周日)。这个写数字都可以用一些符号代替:

*:指这个数位的范围内所有的数字

,:间隔多个不连续的时间,例如1,6,9,13 是选择不连续的时间

-:是表示一个连续的时间   1-9   1点到9点

/:表示的是间隔的时间的频率

格式:  crontab 选项 -u 用户

crontab有三个常用的选项

-e:新建一个周期性计划

-l:查看当前创建好的计划

-r: 删除一个计划任务,可以指定为某个用户下的计划任务

 直接用这个命令新建一个计划任务,生效于root。

这串命令的意思是,每周、每月、每日、每小时的每一分钟执行一次ls ,注意这个命令要使用绝对路径。

 

 在你设置的时间到达之后,系统会给你发送一个邮件,你到指定目录直接查看即可

 这个邮件会列出命令信息,执行时间,执行结果等信息,每到一次时间就会提醒一次

不想要这个计划就可以用 crontab -r 删掉或者再进去修改配置,都可以。

总结

进程的查找,前后台切换,中断、终止,是很常用的命令,进场能够用到。而计划任务,更是几乎每天都要用到,因为有的时候需要执行某些命令,但是那个时候人已经不在岗位怎么办,所以只能定制一个定时任务,所以还是非常关键的功能。

猜你喜欢

转载自blog.csdn.net/m0_60360828/article/details/120317522
今日推荐