进程和计划任务

发布时间:2024年01月08日

一、程序

? 1.1 什么是程序

? ??程序放在硬盘上,程序时执行特定任务的一串代码

二、进程

? 2.1 什么是进程

? ? 进程放在加载到内存中运行,进程是程序的副本,进程是有生命周期。

? ? 创建进程:

? ? ? Centos6的第一个进程为init,Centos7的第一个进程为systemd

? 2.2 进程的特征

  • ? ? 动态性
  • ? ? 并发性
  • ? ? 独立性
  • ? ? 结构性

? 2.3 进程、线程和协程的特点

  1. ? ? 减少硬件资源的消耗
  2. ? ? 进程切换
  3. ? ? 相同资源的存储

? 面试题:进程和线程如何确定一个程序是多线程还是单线程?

? ? 要查看该进程的详细状态

? ? 命令:

? ? ? cat proc/该程序的PID号文件夹/status

? ? ? grep i threads proc/该程序的PID号文件夹/status

? ? ? prstat 进程pid号

? 面试题:1. 如何过滤见识过hi进程?

? ? ps aux | grep -v grep | grep Z

? ? ? ? ? ? ? ? ? 2. 如何结束僵尸进程

? ? 重启reboot

? 2.4 进程和重启的问题

? ? 内存泄漏:Memory Leak

? ? 内存溢出:Memory Overflow

? ? 内存不足:Out Of Memory

? ? 内存不足的原因:

? ? ? 1. 给应用分配内存太少,例如虚拟机本身使用的内存较少

? ? ? 2. 应用给的太多,没有释放完,就会造成内存泄露或者内存溢出

? ? 常用的解决方法:

  • ? ? ? 限制数量的使用,从而降低内存的使用
  • ? ? ? 给系统增加swap空间

? ? 进程更多的状态:

? ? ? 运行态:running

? ? ? 就绪态:ready

? ? ? 睡眠态:分为两种状态——1.interruptable(可中断)

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 2.uninterruptable(不可中断)

? ? ? 停止态:stopped,暂停与内存,只有手动操作

? ? ? 僵死态:zombie,杀死父进程可以关闭子进程

? ? 进程结束后,父进程会回收子进程的硬件资源

? 2.5 进程分类

? ? 进程类型:

  • ? ? ? 守护进程: daemon,在系统引导过程中启动的进程,和终端无关进程
  • ? ? ? 前台进程:跟终端相关,通过终端启动的进程

三、进程管理相关命令

??进程的管理主要是指进程的关闭与重启。比如,要重启 apache 服务,一般使用命令"service httpd restart"重启 apache的程序。systemctl httpd start。

??系统中可以识别的信号较多,我们可以使用命令"kill -l"或"man 7 signal"来查询。

代号名称说明
1SIGHUP让进程立即关闭,读取文件后重启
2SIGINT终止前台程序,相当于CTRL+C
3SIGQUIT退出
8SIGFRE发生致命的运算错误时才会发出
9SIGKILL用来强制终止程序运行
14SIGALRM时钟定时信号,用来计算实际时间和时钟时间
15SIGTERM无法正常终止程序运行,所以要尝试SIGKILL
18SIGCONT让暂停的进程恢复执行
19SIGSTOP该信号可以暂停前台进程,但不能阻断。相当于CTRL+Z

? 3.1 ps命令

? ? 查看静态的进程统计信息

? ? ? ps aux——可以查看系统中所有的进程

? ? ? ps -le——可以查看系统中所有的进程,还可以该进程的父进程PID和进程优先级

? ? ? ps -l——只能查看当前Shell产生的进程?

常用选项功能
a显示当前终端下的所有进程信息,包括其他用户的进程
u使用以用户为主的格式输出进程信息
x显示当前用户在所有终端下的进程信息
-e显示系统内的所有进程信息
-l使用长(Long)格式显示进程信息
-f使用完整的(Full)格式显示进程信
k | --sort对属性排序,属性前加 - 表示倒序
o选项显示定制的信息 pid、cmd、%cpu、%mem

? ??

? ? [root@localhost ~ ] # ps -ax——终端有关或无关的进程

? ? [root@localhost ~ ] # ps-aux——和用户有关的进程?

? ? ps aux

表头含义
USER哪个用户产生
PID进程的ID
%CPU占用CPU资源的百分比,占用越高消耗越大
%MEM占用物理内存的百分比,占用越高小号远大
VSZ占用虚拟内存大小,单位为KB
RSS占用实际物理内存大小,单位为KB
TTY在哪个终端运行的
STAT

-D:不可唤醒状态

-R:该进程正在运行

-S:休眠状态可被唤醒

-T:停止状态

-W:内存呼唤状态

-X:挂掉的进程

-Z:僵尸进程。进程虽终止,但还是占用硬件资源

-<:高优先级

-N:低优先级

-L:被锁入内存

-s:包含子进程

-l:多线程

-+:位于后台

START进程的启动时间
TIME占用CPU运算时间
COMMAND产生此进程的命令

? ? ?ps -ef? ? ? ? 命令输出信息

表头含义
F进程标志,说明进程的权限
S进程的状态
UID此进程的用户ID
PID进程的ID
PPID父进程的ID
C该进程的CPU使用率,单位为百分比
PRI进程优先级,数值越小优先级越高,系统不可被修改
NI进程优先级,数值越小优先级越高,系统可被修改
ADDR该进程在内存的哪个位置
SZ该进程占用多大内存
WCHAN该进程是否运行,'-'表示正在运行
TTY该进程由哪个终端产生
TIME此进程占用CPU的运算时间
CMD此进程的命令名

? 3.1.1 查看进程信息prtstat

? ? prtstat 18295

? 3.2 top命令

选项功能
-d指定top命令每隔几秒更新。默认为3秒
-b使用批处理模式输出
-n指定top命令执行的次数
-p查看指定ID的进程
-stop命令在安全模式下运行
-u只监听某个用户的进程

? ? top命令显示窗口,还有其他按键可以交互

选项功能
?或h显示交互模式的帮助
c按照CPU的使用率排序
M按照内存的使用率排序
N按照PID排序
T按照CPU累计运算时间排序
k按照PID给于某个进程一个信号
r按照PID给某个进程重设优先级(Nice)值
q退出top命令
? 3.2.1 htop

? ? 增强版的top

? 3.3 pgrep命令

? ? 查看指定的进程

选项功能
-U指定用户
-l显示进程号
-a显示完整格式的进程名
-ppid显示指定进程的子进程

? 3.4 pstree命令进程树

? ? 以树形结构列出进程信息

选项功能
-a显示启动每个进程对应的完整指令,包括路径、参数等
-p显示PID
-T

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

-u显示用户切换
-Hpid高亮

? 3.5 lsof

? ??列举系统中已经被打开的文件。

? ? 格式:lsof [选项]

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

??

? 3.6 五大性能

? ? cpu ????????????????top w

? ? 内存 ????????????????top free

? ? 硬盘分区 ????????fdisk

? ? 硬盘剩余 ????????df

? ? 硬盘读写性能 iostat

? ? 网络带宽 ????????iftop

? 3.7 系统资源统计

? ??yum ?install ? dstat -y

四、进程管理

? 4.1 手动启动

? ? 前台运行:影响当前终端的操作

? ? 后台运行:不影响当前终端的操作

? 4.1.1?"命令 &",把命令放入后台执行

? ??让作业运行于后台。

? ? 注意,放入后台执行的命令不能与前台有交互,否则这个命令是不能在后台执行的

? 4.1.2 查看后台人物列表jobs

? 4.1.3 调出后台任务fg

? 4.1.3 继续任务bg

? 4.2 结束进程

? ? 4.2.1 kill

? ? ??kill 命令只是用来向进程发送一个信号,至于这个信号是什么,是用户指定的。

? ? ? kill的原理:kill 命令会向操作系统内核发送一个信号(多是终止信号)和目标进程的 PID,然后系统内核根据收到的信号类型,对指定进程进行相应的操作。

? ? ? 格式:kill [信号] PID?

信号编号信号名含义
0EXIT程序退出时收到该信息。
1HUP挂掉电话线或终端连接的挂起信号,这个信号也会造成某些进程在没有终止的情况下重新初始化。
2INT表示结束进程,但并不是强制性的,常用的 "Ctrl+C" 组合键发出就是一个 kill -2 的信号。
3QUIT退出。
9KILL杀死进程,即强制结束进程。
11SEGV段错误。
15TERM正常结束进程,是 kill 命令的默认信号。

? 4.2.2 killall

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

? ? 交互杀死:killall -i sshd

? 4.2.3 pkill

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

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

五、计划任务

? 5.1 at一次性

? ? at 时间

? ? ctrl+d 提交

? ? atq 可以查看任务列表

? ? atrm 任务序列号 可以删除任务

? ? /etc/at.allow 默认所有用户不可以使用at只有在at.allow

? ? 文件中的用户才可以用at命令

? ? /etc/at.deny 默认所有用户可以使用at,只有在里面不可以写

? 5.2 crontab周期

文章来源:https://blog.csdn.net/sea_bunch/article/details/135391409
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。