Linux(进程和计划任务管理)

目录

 1.进程 VS 线程

1.2 线程

1.3 进程和线程的关系 

 2.查看进程

2.1 PS静态查看进程信息

 2.2 TOP动态查看进程信息

2.3 系统查看命令总结 

2.4 查看进程信息pgrep

2.5 查看进程树pstree 

3.控制进程

3.1 进程的启动方式

3.2 进程的前后台调度

3.3 终止进程的运行kill

3.4 终止进程的运行pkill

4.计划任务管理

4.1 at命令

4.2 crontab命令 


 1.进程 VS 线程

程序

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

● 文件中静态保存的代码

进程

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

● 动态执行的代码

● 父、子进程

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

1.2 线程

线程是操作系统能够进行运算调度的最小单位

● 它被包含在进程之中,是进程中的实际运作单位

一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务

总结:线程是进程的一条流水线, 只用来执行程序,而不涉及到申请资源, 是程序实际执行的最小执行单元。

1.3 进程和线程的关系 

 举列说明:我们打开手机设置,这就是开启了一个进程;当我们在设置里面进行功能设置,比如屏幕显示, 密码设置, 这些操作就是线程.,进程” 包含 “线程”, “线程” 是 “进程” 的子集.

(1)一个线程只能属于一个进程,而一个进程可以有多个线程,但至少有一个线程;

(2)资源分配给进程,同一进程内的所有线程共享该进程的所有资源;

(3)线程在执行过程中需要协作同步。不同进程中的线程之间要利用消息通信的方法实现同步;

(4)处理机分配给线程,即真正在处理机上运行的是线程;

(5)线程是进程的一个执行单元,也是进程内的可调用实体。

 

对比项进程线程
定义进程是程序运行的一个实体运行过程,是系统进行资源分配和调配的一个独立单位线程是进程运行和执行的最小调度单位
系统
开销
进程系统开销大线程系统开销小
资源资源分配的基本单位不拥有资源
调度独立调度的基本单位独立调度的最小单位
通信进程IPC读写同一进程数据通信
安全
进程间相互独立,互不影响线程共享一个进程下的资源,可以互相通信和影响
地址
空间
系统赋予的独立的内存地址空间由相关堆栈寄存器和线程控制表TCB组成,寄存器可被用来存储线程内的局部变量

 2.查看进程

2.1 PS静态查看进程信息

PS命令:查看静态的进程统计信息

ps aux
ps -aux(-可加可不加)

选项以及各列解释 

选项或列名功能解释
a显示终端上的所有进程,包括其它用户的进程
u表示列出进程的用户
x显示所有终端的进程
USER进程的用户
PID进程的ID
%CPU进程占用的CPU百分比
%MEM占用内存的百分比
VSZ该进程使用的虚拟内存量(KB),也就是交换分区的大小
RSS该进程占用的物理内存量(KB)
TTY启动进程的终端名。不是从终端启动的进程则显示为?
STAT该进程的状态(D:不可中断的休眠状态。R:正在运行状态:$:处于休眠状态,可被唤醒,T:停止状态,可能是在后台暂停或进程处于跟踪调试状态。2:僵尸进程,进程已经中止,但是部分程序还在内存当中)
START该进程被触发启动时间
TIME该进程实际使用CPU运行的时间
COMMAND进程的启动命令

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

 ps -elf命令:使用长格式,完整的显示系统内所有进程信息;

ps -elf      #此命令中—必须要加
选项功能解释
-e显示系统内的所有进程信息

-l

使用长格式显示进程信息
-f使用完整的格式显示进程信息
-a显示现行终端下的所有进程
-T查看线程信息

ps aux --sort -%cpu | head -10     #按cpu降序排列,-为降序,+为升序,p与%同义
ps aux --sort +pmem | head -n 10   #按内存升序排列
ps aux —-sort -pcpu ,+pmem | head -n 10    #先按cpu降序排列,再按照内存升序排列,然后交给管道符显示出前10个
ps -aT    #显示所有线程
ps -T -p <pid>     #查看指定进程中已经启动的线程
ps -L <pid>       #查看指定进程中的线程信息

 

 各列的解释

列名功能解释
F内核分配给进程的系统标记
S进程的状态
UID启动这些进程的用户
PID进程的进程ID
PPID父进程的进程号(如果该进程是由另一个进程启动的)
C进程生命周期中的CPU利用率
PRI进程的优先级(越大的数字代表越低的优先级)
NI谦让度值用来参与决定优先级,越谦让优先级越低
ADDR进程的内存地址
SZ假如进程被换出,所需交换空间的大致大小
WCHAN若该进程在睡眠,则显示睡眠中的系统函数名
STIME进程启动时的系统时间
TTY进程启动时的终端设备
TIME运行进程需要的累计CPU时间
CMD进程的启动命令

 

 2.2 TOP动态查看进程信息

 top命令

top命令:查看动态的进程排名信息(每5秒刷新一次页面数据); 

属性名功能解释
01:06:48当前系统时间
up 1: 22系统已运行时长
1 user当前登录用户数
load average:0.06,0.60,0.48系统平均负载,即单位时间内系统处理的任务数,后面三个数值分别为1分钟、5分钟、15分钟前到现在的平均值
第二行为进程信息
Tasks总进程数
running正在运行的进程数
sleeping中止的进程数
zombie僵死的进程数
第三行为CPU的信息
uS用户占用
sy内核占用
ni优先级调度占用
id空闲CPU,要了解空闲的CPU百分比,主要看%id部分
waI/O等待占用
hi硬件中断占用
si软件中断占用
st虚拟化占用
第四行为内存的信息
total总内存空间
free空闲内存
used己用内存
buff/cache物理内存和交换内存的缓冲区总和
第五行为交换空间的信
total总交换空间
free空闲交换空间
used己用交换空间
avail Mem可用物理空间

 注意: 按键盘数字1可以查看系统内每个cpu的使用情况,再次按1将返回显示系统内cpu的平均使用情况。

 进程信息区各列解释:

列名功能解释
PID进程id
USER进程所有者的用户名
PR优先级
NI谦让度值,负值表示高优先级,正值表示低优先级
VIRT进程使用的虚拟内存总量,单位kb
RES进程使用的物理内存总量,单位kb
SHR共享内存大小,单位kb
S进程状态
%CPU上次更新到现在的CPU时间占用百分比
%MEM进程使用的物理内存百分比
TIME+进程使用的CPU时间总计,单位1/100秒
COMMAND命令名1命令行

 top常用命令

按键功能解释
P建根据CPU使用百分比大小进行排字
M键根据驻留内存大小进行排字
N键根据启动时间进行排序
c键切换显示命令名称和完整命令行
h键可以获得top程序的在线帮助信息
数字1键显示CPU个数(是123中的1,而不是1)
k键根据提示输入指定进程的PID号并按Enter键终止对应的进程
q键退出top程序

iostat命令:查看I/O的相关信息;
 

 pidstaat命令:查看PID进程的详细信息;

 

能够查看load average平均负载情况的命令(top、w、uptime); 

 

 

2.3 系统查看命令总结 

查看内容查看命令
内存free -m.vmstat. atop
CPUtop、vmstat、 atop. sar
I/Oiostat,iotop、vmstat, atop、 sar、 pidstat
网卡流量ifconfig、iftop、 atop
网卡流量df. du、 atop
进程ps、top、htop、 atop、pidstat

2.4 查看进程信息pgrep

pgrep命令

 

2.5 查看进程树pstree 

pstree命令

 

3.控制进程

3.1 进程的启动方式

 

 

3.2 进程的前后台调度

Ctrl+Z组合键:将当前进程挂起,即调入后台并停止执行;


 

jobs命令:jobs [-l]查看处于后台的任务列表; 

 fg命令:将后台进程恢复到前台运行,可指定任务序号

3.3 终止进程的运行kill

Ctrl + C组合键:中断正在执行的命令;

 kill、killall命令

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

● killall用于终止指定名称相关的所有进程

● -9选项用于强制终止 

[root@localhost ~]# ps -elf | grep httpd
0 S root       7208   2609  0  80   0 - 28206 pipe_w 20:27 pts/0    00:00:00 grep --color=auto httpd
[root@localhost ~]# kill 2609  #强制杀死指定进程2609
[root@localhost ~]# ps -elf | grep httpd
0 S root       7280   2609  0  80   0 - 28206 pipe_w 20:29 pts/0    00:00:00 grep --color=auto httpd
[root@localhost ~]# systemctl restart httpd #重启httpd
[root@localhost ~]# killall httpd  #强制杀死
[root@localhost ~]# ps -elf | grep httpd
0 S root       7433   2609  0  80   0 - 28206 pipe_w 20:31 pts/0    00:00:00 grep --color=auto httpd
[root@localhost ~]# 

 

常用信号含义补充:

(1)SIGHUP:重载配置文件,但是不杀死任务,效果等同于reboot;
(3)SIGQUIT:给予提示信息,保存日志文件及程序执行信息;
(9) SIGKILL:表示进程被终止,需要立即退出,强制杀死该进程,这个信号不能被捕获也不能被忽略;
(15)SIGTERM:告诉进程需要被关闭,请自行停止运行并退出;

补充: 我们经常会用到kill命令去杀死一个进程,但是有时会出现kill不成功的现象,这时就要用到kill -9。
之所以这两个命令会有区别是因为所发送的信号(signal)是不同的。默认情况下kill命令的参数为-15。
kill -15代表的信号为SIGTERM,这是告诉进程你需要被关闭,请自行停止运行并退出;
kill -9代表的信号是SIGKILL,表示进程被终止,需要立即退出;
因此kill -9表示强制杀死该进程,这个信号不能被捕获也不能被忽略。
 

3.4 终止进程的运行pkill

 pkill命令

pkill命令:根据特定条件终止相应的进程; 

常用命令选项:

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

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

 pkill -9 -U [用户名]:杀死指定用户的所有进程

[root@localhost ~]# pgrep -l -U "root" #过滤关于该用户的所有信息
1 systemd
2 kthreadd
4 kworker/0:0H
6 ksoftirqd/0
[root@localhost ~]# pgrep -9 -U "root" #杀死指定用户的登录

查看终端信息的命令(who、w、ps aux);


 

4.计划任务管理

4.1 at命令

一次性计划任务

● 使用at命令设置的任务只在指定时间点执行一次,若只指定时间则表示当天的该时间,若只指定日期则表示该日期的当前时间

● 可以在at交互环境中输入多条命令,最后按Ctrl+D组合键提交

 at HH:MM [yyyy-mm-dd] --> 输入命令列表 --> ctrl + d 提交任务 --> atq 查看没执行的任务列表和序号 --> atrm <序号> 删除指定的任务

 

4.2 crontab命令 

 crontab命令

 

 应用示例:

 

crontab任务配置

代表意义数字范围
分钟0~59
小时0~23
日期1~31
月份1~12
0~7
命令需要执行的命令
注意#周的数字为0或7时,都代表”星期天“的意思
代表意义数字范围
每分钟定时执行一次规则
每1分钟执行*/1 * * * *
每5分钟执行*/5 * * * *
每小时定时执行一次规则
每小时执行0 * * * *或者0 */1 * * *
每天上午7点执行0 7 * * *
每天上午7点10分执行10 7 * * *
每天定时执行一次规则
每天执行0 0 * * *
每周定时执行一次规则
每周执行0 0 * * 1
每月定时执行一次规则
每月执行0 0 1 * *
每年定时执行一次规则
每年执行0 0 1 1 *

  • 29
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值