0
点赞
收藏
分享

微信扫一扫

进程和任务计划管理

waaagh 2022-03-14 阅读 110

本章结构

查看进程

控制进程

at一次性任务设置

crontab周期性任务设置

程序和进程的关系

程序

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

静态保存的代码

进程

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

动态执行的代码

父、子进程

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

查看进程信息ps

ps命令

查看静态的进程统计信息

【root@localhost~】#ps aux

支持三种选项:

“ps aux” 查看系统中的所有进程

“ps -le”可以查看系统中所有的进程,而且还能看到进程的父进程的PID和进程优先级

“ps -l”只能看到当前Shell产生的进程

常用选项

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

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

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

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

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

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

k| --sort属性对属性排序,属性前加-表示倒序

 僵尸进程:

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

父进程退出 子进程没有退出 那么这些子进程就没有父进程管理了,变成僵尸进程。

子进程已经结束了,父进程没有意识到。

 查看进程信息top

top命令

查看动态的进程排名信息

【root@localhost~】#top

 查看进程信息pgrep

pgrep命令

根据特定条件查询进程PID信息

 pstree命令

以树形结构列出进程信息

pstree 【OPTION】【PID】【USER】

常用选项

-a 显示启动每个进程对应的完整指令,包括启动进程的路径、参数等

-p 显示PID

-T 不显示线程thread,默认显示线程

-u 显示用户切换

-H pid 高量显示指定进程及其前辈进程

一次性任务

at

at 工具

  1. 由包 at 提供

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

  3. at队列存放在/var/spool/at目录中,ubuntu存放在/var/spool/cron/atjobs目录下

  4. 执行任务时PATH变量的值和当前定义任务的用户身份一致

at 命令的访问控制是依靠 /etc/at.allow(白名单)和 /etc/at.deny(黑名单)这两个文件来实现的,具体规则如下:

  • 如果系统中有 /etc/at.allow 文件,那么只有写入 /etc/at.allow 文件(白名单)中的用户可以使用 at 命令,其他用户不能使用 at 命令(注意,/etc/at.allow 文件的优先级更高,也就是说,如果同一个用户既写入 /etc/at.allow 文件,又写入 /etc/at.deny 文件,那么这个用户是可以使用 at 命令的)。

  • 如果系统中没有 /etc/at.allow 文件,只有 /etc/at.deny 文件,那么写入 /etc/at.deny 文件(黑名单)中的用户不能使用 at 命令,其他用户可以使用 at 命令。不过这个文件对 root 用户不生效。

  • 如果系统中这两个文件都不存在,那么只有 root 用户可以使用 at 命令。

系统中默认只有 /etc/at.deny 文件,而且这个文件是空的,因此,系统中所有的用户都可以使用 at 命令。不过,如果我们打算控制用户的 at 命令权限,那么只需把用户写入 /etc/at.deny 文件即可

 

crontab周期性任务

crontab

-u 用来设定某个用户的crontab服务,此选项一般由root用户来运行

-e 编辑某个用户的crentab文件内容。如果不指定用户,则表示编辑当前用户的crentab文件

-l 显示某用户crentab文件内容,如果不指定用户,则表示显示当前用户的crentab文件内容

-r 从/var/spool/cron删除某用户的crentab文件,如果不指定用户,则默认删除当前用户的crentab文件

-i 再删除用户的crentab文件时,给确认提示

crentab -e

#进入crentab编辑界面。会打开Vim编辑你的任务

* * * * *  执行的任务

 在时间表示中,还有一些特殊符号需要学习

 

 在书写crentab定任务时,需要注意一下几个事项。

6个选项都不能为空,必须填写。如果不确定,则使用“*”代表任意时间。

crentab定时任务的最小有效时间是分钟,最大有效时间是月。像2018年某时执行,3点30分30秒这样的时间都不能被识别。

在定义时间时,日期和星期最好不要在一条定时任务中出现,因为它们都以天为单位,非常容易让管理员混淆。

在定时任务中,不管是直接写命令,还是在脚本中写命令,最好都使用绝对路径。有时使用相对路径的命令会报错。

举报

相关推荐

0 条评论