首页 > 系统相关 >Linux进程和计划任务

Linux进程和计划任务

时间:2023-02-02 09:01:59浏览次数:59  
标签:选项 用户 crontab 命令 任务 Linux 进程 CPU

一、进程及其命令介绍
1.1 什么是进程
要想了解进程,首先我们要了解什么是程序。

程序是一组计算机能识别和执行的指令,运行于电子计算机上,满足人们某种需求的信息化工具;而进程则是运行中的程序的一个副本,是被载入内存的一个指令集合,是资源分配的单位。

在Linux系统中:

进程ID(Process ID,PID)号码被用来标记各个进程
UID、GID、和SELinux语境决定对文件系统的存取和访问权限
通常从执行进程的用户来继承
存在生命周期
都由其父进程创建
1.2 进程的特征
动态性:进程是程序的一次执行过程,是临时的,有生命期的,是动态产生,动态消亡的
并发性:任何进程都可以同其他进程一起并发执行
独立性:进程是系统进行资源分配和调度的一个独立单位
结构性:进程由程序、数据和进程控制块三部分组成
二、进程管理的相关命令
2.1 ps命令
ps,全称 process state,进程状态。

ps可以查看进程当前状态,默认显示当前终端中的进程,Linux系统各进程的相关信息均保存在 /proc/pid号 下的各文件中。

格式:ps [选项]

选项作用
a 显示当前终端下的所有进程信息,包括其他用户的进程,与“x”选项结合时将示系统中所有的进程信息
u 使用以用户为主的格式输出进程信息
x 显示当前用户在所有终端下的进程信息
-l 使用长格式显示进程信息
-e 显示系统内的所有进程信息
-f 使用完整的格式显示进程信

ps aux(可以查看系统中的所有进程)

 

 

 

 

USER:进程的属主
PID:进程号
%CPU:进程所占CPU的百分比
%MEM:进程所占物理内存的百分比
VSZ:进程所占用的虚拟内存的大小
RSS:进程所占用的物理内存的大小
TTY:进程是在哪个终端运行的;tty1 ~ tty7 代表本地控制台终端(可以通过 Alt+F1 ~ F7 快捷键切换不同的终端),tty1~tty6 是本地的字符界面终端,tty7 是图形终端。pts/0 ~ 255 代表虚拟终端,一般是远程连接的终端,第一个远程连接占用 pts/0,第二个远程连接占用 pts/1,依次増长
STAT:进程的状态;D为不可被唤醒的睡眠状态,通常用于 I/O ;R为该进程正在运行;S为该进程处于睡眠状态,可被唤醒;T为停止状态,可能是在后台暂停或进程处于除错状态;Z为僵尸进程,进程已经中止,但是还是占用硬件资源;X为死掉的进程;< 为高优先级;N为低优先级;L为被锁入内存; s 为包含子进程;l 为多线程;+为位于后台
START:进程的启动时间
10.TIME:进程占用CPU的运算时间
COMMAND:产生该进程的命令
ps -le(查看系统中所有的进程)
(注:不仅可以查看系统中所有的进程,而且还能看到进程的父进程的 PID 和进程优先级)


 

 

 

 

F:进程标志,说明进程的权限,常见的标志有两个: 1:进程可以被复制,但是不能被执行;4:进程使用超级用户权限
S:进程状态。具体的状态和 ps aux 命令中的 STAT 状态一致
UID:运行此进程的用户的 ID
PID:进程号
PPID:父进程号
C:进程的CPU使用率,单位为百分比
PRI:进程的优先级,数值越小,该进程的优先级越高,越早被 CPU 执行;系统定义不可以人为修改
NI:进程的优先级,数值越小,该进程越早被执行;可以人为修改
ADDR:该进程在内存的哪个位置
SZ:该进程占用多大内存
WCHAN:该进程是否运行;- 代表正在运行
TTY:该进程由哪个终端产生
TIME:该进程占用 CPU 的运算时间,注意不是系统时间
CMD:产生此进程的命令名
PRI(最终的值)= PRI(不可变)+ NI(可变)

修改 NI 的值就可以改变进程的优先级。NI 值越小,进程的 PRI 就会降低,该进程就越优先被 CPU 处理;反之,NI 值越大,进程的 PRI 值就会増加,该进程就越靠后被 CPU 处理。

修改 NI 值时有几个注意事项:

NI 范围是 -20~19。
普通用户调整 NI 值的范围是 0~19,而且只能调整自己的进程。
普通用户只能调高 NI 值,而不能降低。如原本 NI 值为 0,则只能调整为大于 0。
只有 root 用户才能设定进程 NI 值为负值,而且可以调整任何用户的进程。
2.2 top命令
top 命令可以动态地持续监听进程地运行状态,与此同时,该命令还提供了一个交互界面,用户可以根据需要,人性化地定制自己的输出,进而更清楚地了进程的运行状态。

格式:top [选项]

选项 作用
-d 秒数 指定 top 命令每隔几秒更新,默认是 3 秒
-b 使用批处理模式输出,一般和 -n 选项合用,用于把 top 命令重定向到文件中
-n 次数 指定 top 命令执行的次数
-p PID 仅查看指定 ID 的进程
-s 使 top 命令在安全模式中运行,避免在交互模式中出现错误
-u 用户名 只监听某个用户的进程

 

 

第一行:

17:34:54:当前系统时间
up 6 min:系统已经运行的时间,我现在运行了6分钟
1 user:当前登录了1个用户
load average:0.00 0.14 0.12:系统在之前的1 分钟、5 分钟、15 分钟的平均负载
第二行为进程信息:

118 total:系统中的进程总数,当前为118个
1 running: 正在运行的进程数,当前为1个
117 sleeping:睡眠的进程数,当前为117个
0 stopped:正在停止的进程数,当前为0个
0 zembie:僵尸进程数,当前为0个。如果不是 0,则需要手工检查僵尸进程
第三行为CPU信息:

0.0 us :用户模式占用的 CPU 百分比
0.2 sy:系统模式占用的 CPU 百分比
0.0 ni: 改变过优先级的用户进程占用的 CPU 百分比
99.8 id:空闲 CPU 占用的 CPU 百分比
0.0 wa:等待输入/输出的进程占用的 CPU 百分比
0.0 hi:硬中断请求服务占用的 CPU 百分比
0.0 si:软中断请求服务占用的 CPU 百分比
0.0 st:st(steal time)意为虚拟时间百分比,就是当有虚拟机时,虚拟 CPU 等待实际 CPU 的时间百分比
第四行为物理内存信息:

1867048 total:物理内存的总量,单位为KB
1507208 free:己经使用的物理内存数量
156752 used:空闲的物理内存数量
203088 buff/cache:作为缓冲的内存数量
第五行为交换分区(swap)信息:

4194300 total:交换分区(虚拟内存)的总大小
4194300 free:空闲交换分区的大小
0 used:已经使用的交换分区的大小
1531116 avail Mem:可用内存大小

 

 

PID:进程的 ID。
USER:该进程所属的用户。
PR:优先级,数值越小优先级越高。
NI:优先级,数值越小、优先级越高。
VIRT:该进程使用的虚拟内存的大小,单位为 KB。
RES:该进程使用的物理内存的大小,单位为 KB。
SHR:共享内存大小,单位为 KB。
S:进程状态。
%CPU:该进程占用 CPU 的百分比。
%MEM:该进程占用内存的百分比。
TIME+:该进程共占用的 CPU 时间。
COMMAND:进程的命令名。
2.3 pgrep命令
pgrep命令用来查看指定的进程。

格式:pgrep [选项] 参数

选项 作用
-U 指定用户
**-l ** 显示进程名
-a 显示完整格式的进程名
-P pid 显示指定进程的子进程

2.4 pstree命令
pstree命令用于以树形结构列出进程信息

格式:pstree [选项] [pid/进程名]

选项 作用
-a 显示启动每个进程对应的完整指令,包括启动进程的路径、参数等
-p 显示pid
-T 不显示线程thread,默认显示线程
-u 显示用户切换
-H pid 高亮显示指定进程及其前辈进程

2.5 lsof命令
lsof,全称 list opened files,列举系统中已经被打开的文件。

通过 lsof 命令,我们就可以根据文件找到对应的进程信息,也可以根据进程信息找到进程打开的文件。

格式:lsof [选项]

选项 作用
-c 字符串 只列出以字符串开头的进程打开的文件
+d 目录名 列出某个目录中所有被进程调用的文件
-u 用户名 只列出某个用户的进程打开的文件
-p pid 列出某个 PID 进程打开的文件

2.6 kill命令
kill,杀死,在Linux中用来干掉某个进程。实际上,kill 命令只是用来向进程发送一个信号,至于这个信号是什么,是用户指定的。

格式:kill [-信号] pid

信号 作用
0 程序退出时收到该信息
1 挂掉电话线或终端连接的挂起信号,这个信号也会造成某些进程在没有终止的情况下重新初始化
2 表示结束进程,但并不是强制性的,常用的 “Ctrl+C” 组合键发出就是一个 kill -2 的信号
3 退出
9 杀死进程,即强制结束进程
11 段错误
15 正常结束进程,是 kill 的默认信号,即 kill 不加信号
2.7 killall命令
killall 也是用于关闭进程的一个命令,但和 kill 不同的是,killall 命令不再依靠 PID 来杀死单个进程,而是通过程序的进程名来杀死一类进程,也正是由于这一点,该命令常与 ps、pstree 等命令配合使用。

格式:killall [选项] [信号] 进程名

选项 作用
-i 人机交互,杀死进程前询问
-I 忽略进程的大小写

2.8 pkill命令
当作于管理进程时,pkill 命令和 killall 命令的用法相同,都是通过进程名杀死一类进程,通过 killall 命令杀死 sshd 进程的方式来踢出用户,非常容易误杀死进程,要么会把 sshd 服务杀死,要么会把自己的登录终端杀死。

不管是使用 kill 命令按照 PID 杀死登录进程,还是使用 killall 命令按照进程名杀死登录进程,都是非常容易误杀死进程的,而使用 pkill 命令则不会。

格式:pkill [-信号] 进程名

信号 作用
0 程序退出时收到该信息
1 挂掉电话线或终端连接的挂起信号,这个信号也会造成某些进程在没有终止的情况下重新初始化
2 表示结束进程,但并不是强制性的,常用的 “Ctrl+C” 组合键发出就是一个 kill -2 的信号
3 退出
9 杀死进程,即强制结束进程
11 段错误
15 正常结束进程,是 kill 的默认信号,即 kill 不加信号
pkill命令踢出登陆用户

pkill [-t 终端号] 进程名

2.9 进程启动方式

进程启动方式有两种,一是前台启动,就是我们日常输入命令后执行,如果执行的是下载或者拷贝一些超大的文件,在此期间,我们是不能进行其他操作的;二是后台启动,就是在前台启动的命令后面加上加上空格&,后台启动的任务是挂起在后台的,在此期间,我们可以进行其他的操作


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

2.10 at命令

at用于执行一次性任务,只执行一次

格式:at [选项] [时间]

时间格式:HH:MM YYYY-MM-DD

2.11 crontab命令
crontab命令用于执行重复式的命令,比如每周一都进行备份,就可以使用crontab命令,而不需要每周一都手动备份。

格式:crontab [选项] [文件]

选项 作用
-e 编辑某个用户的 crontab 文件内容。如果不指定用户,则表示编辑当前用户的 crontab 文件
-u user 用来设定某个用户的 crontab 服务,例如 “-u demo” 表示设备 demo 用户的 crontab 服务,此选项一般有 root 用户来运行
-l 显示某用户的 crontab 文件内容,如果不指定用户,则表示显示当前用户的 crontab 文件内容
-r 从 /var/spool/cron 删除某用户的 crontab 文件,如果不指定用户,则默认删除当前用户的 crontab 文件
-i 在删除用户的 crontab 文件时,给确认提示
在书写 crontab 定时任务时,需要注意以下几个事项:

6 个选项都不能为空,必须填写。如果不确定,则使用 * 代表任意时间。
crontab 定时任务的最小有效时间是分钟,最大有效时间是月。像 2018 年某时执行、3 点 30 分 30 秒这样的时间都不能被识别。
在定义时间时,日期和星期最好不要在一条定时任务中出现,因为它们都以天为单位,非常容易让管理员混淆。
在定时任务中,不管是直接写命令,还是在脚本中写命令,最好都使用绝对路径。有时使用相对路径的命令会报错。
crontab -e 进入crontab编辑页面(vim编辑)

格式为:* * * * * 执行的任务

项目 含义 范围
第一个 * 一小时当中的第几分钟(minute) 0-59
第二个 * 一天当中的第几小时(hour) 0-23
第三个 * 一个月当中的第几天(day) 1-31
第四个 * 一年当中的第几个月(month) 1-12
第五个 * 一周当中的星期几(week) 0-7(0和7都表示星期天)

在时间表示中,还有一些特殊符号

特殊符号 含义
* (星号) 代表任何时间。比如第一个"*"就代表一小时种每分钟都执行一次的意思
,(逗号) 代表不连续的时间。比如 0 8,12,16 * * * 就代表在每天的 8 点 0 分、12 点 0 分、16 点 0 分都执行一次命令
- (减号) 代表连续的时间范围。比如 0 5 * * 1-6 代表在周一到周六的凌晨 5 点 0 分执行命令
/(正斜杠) 代表每隔多久执行一次。比如 */10 * * * * 代表每隔 10 分钟就执行一次命令

标签:选项,用户,crontab,命令,任务,Linux,进程,CPU
From: https://www.cnblogs.com/sj5426/p/17084759.html

相关文章

  • Linux引导和服务
    引导和服务引导过程1.开机自检服务器主机开机以后,将根据主板BIOS中的设置对CPU(CentralProcessingUnit,中央处理器)、内存、显卡、键盘等设备进行初步检测,检测成功后根......
  • Linux系统Shell脚本第四章:shell函数
    目录一、shell函数1、函数的作用2、函数使用步骤3、定义函数基本格式4、函数变量5、退出函数6、函数位置变量与脚本位置变量区别 一、shell函数1、函数的作用定......
  • # MIT——6.828:操作系统工程——第4章:实验四:抢占式多任务处理(partA和partB,练习12未完
    在本实验中,我们将在多个同时活动的用户模式环境中实施抢占式多任务处理。在PartA中,我们将为JOS添加多处理器支持,实现循环调度,并添加基本的环境管理系统函数(创建和销毁......
  • 63linux安装and卸载mysql
    配置腾讯云+centos7卸载mysql1.rpm-qa|grep-imysql2.rpm-e--nodeps上面查询的结果(全部要删除)安装MySQL8以下版本1.在root目录下,安装mysql和m......
  • Linux 几个图片编辑工具
    linux上没有snipaste类似的工具,真遗憾。Krita比较专业的工具,类似于photoshopPinta有箭头,比较方便,但是UI对高分屏支持不太好。文字只能输入英文KolorPaint除了直......
  • TQ2440(S3C2440)移植Linux-4.0.1内核全过程
    TQ2440(S3C2440)移植Linux-4.0.1内核全过程文件系统yaffs2下载地址:​​https://yaffs.net/get-yaffs​​​linux内核下载地址:​​https://mirror.bjtu.edu.cn/kernel/linux/......
  • 嵌入式Linux中Makefile万能写法
    嵌入式Linux中Makefile万能写法对于linux系统中使用gcc进行编译:#列出当前目录下所有*.c文件SRC:=$(wildcard*.c)#将所有*.c文件转为*.o文件OBJ:=$(patsubst%.c,%.o......
  • Linux 中使用 echo 修改用户密码
    前戏使用echo命令,可以实现很方便、快捷地修改用户密码使用方法语法#echopassword|passwd--stdinusername示例#echo"123456"|passwd--stdinrootChangingpasswor......
  • Linux CPU亲和性
    CPU亲合力就是指在linux系统中能够将一个或多个进程绑定到一个或多个处理器上运行。一个进程的CPU亲合力掩码决定了该进程将在哪个或哪几个CPU上运行。在一个多处理器系统......
  • 二、Linux常用命令
    一、文件和目录操作相关命令(重点)pwd:查看当前所在的路径位置(涉及到路径切换(cd命令)时,确认路径时使用)ls:查看当前路径下有哪些文件(对路径下文件进行了修改(......