Linux进程和服务管理

1、程序和进程

什么是程序

程序是保存在硬盘、光盘等介质中的可执行代码和数据
文件中静态保存的代码

什么是进程

在CPU及内存中运行的程序代码
动态执行代码
父、子进程
每个程序可以创建一个或多个进程

进程和线程的区别

进程是资源分配最小单位,线程是程序执行的最小单位。 计算机在执行程序时,会为程序创建相应的进程,进行资源分配时,是以进程为单位进行相应的分配。每个进程都有相应的线程,在执行程序时,实际上是执行相应的一系列线程。

1、查看进程信息
1、ps aux

a表示显示终端上的所有进程,也包括其他用户进程
u表示列出进程的用户
x表示显示所有终端的进程
在这里插入图片描述

每个字段的解释:
USER:进程的用户。

PID:进程的ID。

%CPU:进程占用的CPU百分比

%MEM:占用内存的百分比。

VSZ:该进程使用的虚拟内存量(KB)

RSS:该进程占用的物理内存量(KB)

TTY:启动进程的终端名,不是从终端启动的进程则显示?

STAT:五个状态(D:不可中断的休眠状态;R:正在运行状态;S:处于休眠状态,可被唤醒;T:停滞状态,可能是在后台暂停或进程处于跟踪调试状态;Z:僵尸进程,进程已经终止,但是部分程序还在内存当中)

START:该进程被触发启动时间。

TIME:该进程实际使用CPU运行的时间。

COMMAND:进程的启动命令

僵尸进程:僵尸进程是当子进程比父进程先结束,而父进程又没有回收子进程,释放子进程占用的资源,此时子进程将成为一个僵尸进程。如果父进程先退出 ,子进程被init接管,子进程退出后init会回收其占用的相关资源。

2、ps -elf

-e 用来显示系统内的所有进程信息。
-l 使用长格式显示进程信息。
-f 使用完整的格式显示进程信息。

在这里插入图片描述

各层的解释
F:内核分配给进程的系统标记。

S:进程的状态。

UID:启动这些进程的用户。

PID:进程的进程ID。

PPID:父进程的进程号(如果该进程是由另一个进程启动的)

C:进程生命周期中的CPU利用率。

PRI:进程的优先级(越大的数字代表越低的优先级)

NI:谦让度值用来参与决定优先级

ADDR:进程的内存地址。

SZ:假如进程被换出,所需交换空间的大致大小。

WCHAN:若该进程在睡眠,则显示睡眠中的系统函数名。

STIME:进程启动的系统时间。

TTY:进程启动时的终端设备。

TIME:运行进程需要的累计CPU时间。

CMD:进程的启动命令。

3、top

上面使用的两个命令全都是静态查看,如果我想动态的查看进程信息呢?就可以用到top命令,top这个命令可以每隔5s刷新一次进程信息。
在这里插入图片描述
第一行是任务队列信息
14:50:58表示系统时间。
up 1:22表示系统已运行时长
1 suer 当前登录用户数
load average:0.06,0.60,0.48表示系统负载,单位时间内系统处理的任务数,三个数值分别表示1分钟、5分钟、15分钟前到现在的平均值

第二行是进程信息

Tasks是总进程数
running正在运行的进程数
sleeping表示休眠的进程数
stopped表示终止的进程数
zombie表示僵死的进程数

第三行是CPU的信息

us 用户占用
sy 内核占用
ni 优先级调度占用
id 空闲CPU
wa I/O等待占用
hi 硬件中断占用
si 软件中断占用
st 虚拟化占用

第四行为内存的信息

total 总内存空间
free 空闲内存
used 已用内存
buff/cache 物理内存和交换内存的缓冲区总和

第五行为交换空间的信息

total 总交换空间
free 空闲交换空间
used 已用交换空间
avail Mem 可用物理空间

top的常用快捷键

P(大写)键:CPU使用率从大到小排列
M键:根据驻留内存大小进行排序
q:退出
数字1:显示CPU个数和状态。

tty终端:Centos7系统,tty1表示图形界面,tty2-tty6表示文字界面,可用Ctrl+Alt+F1-F6切换。pts说明是用远程工具连接的,比如xshell。

4、pgrep

pgrep可用根据指定条件查询进程PID号。
在这里插入图片描述
在这里插入图片描述

-l:根据进程名查找
-N:查询用户的进程

5、pstree

pstree可以输出Linux系统中各种进程的树形结构。
在这里插入图片描述

2、进程的启动方式

1、手动启动:前台启动:输入命令,直接执行。后台启动:在命令行尾假如”&“符号。

前台启动就不做示范了,这里用后台启动
在这里插入图片描述

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

jobs -l:查看处于后台的任务列表

fg:将后台进程恢复到前台运行

在这里插入图片描述

3、终止进程

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

kill、killall命令

kill用于终止指定PID号的进程
killall用于终止指定名称相关的所有进程
-9可用用于强制终止。

在这里插入图片描述

pkill命令

pkill根据特定条件终止相应的进程

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

在这里插入图片描述

计划任务管理
at命令

at命令是一次性计划任务:at [HH:MM ] [yyyy-mm-dd]

设置在2021年4月22日的晚上8点,执行init6重启这个命令。其实如果是当天执行的话,可以不加年份。

在这里插入图片描述
可以用atq来查看当前设置的一次性计划任务
在这里插入图片描述

删除可以用atrm,加上前面的序号就行。

在这里插入图片描述

crontab命令

1、按照设置的时间周期来执行指定操作,周期(分钟,小时,日,月,周)
在这里插入图片描述

2、属于周期性计划任务

3、crontab的全局配置文件,位于:/etc/crontab
系统默认的设置,位于目录:/etc/cron.*/
用户定义的设置,位于文件:/var/spool/cron/用户名

管理crontab计划任务:

crontab -e [-u 用户名] 不加-u时默认针对当前用户

查看计划任务:

crontab -l [-u 用户名]

删除计划任务:

crontab -r [-u 用户名]

时间数值的特殊表示方法:

  • 表示范围内任意时间
    ,表示间隔的多个不连续的时间点
  • 表示一个连续的时间
    / 间隔的时间频率

例子:

0 13 * * 2-5 周一到周五每天13:00
20 5 * * 2,4,6 每周二,四,六的5点20分
0 2-18/2 * * * 2点到18点之间每2小时
0 * */5 * * 每5天

命令:每年的6月8日的13点50分去重启网卡

在这里插入图片描述

在这里插入图片描述
可以进行crontab -l 进行查看设置的周期性计划任务
在这里插入图片描述

总结

查看进程信息可以用命令:ps aux、ps -elf、top(动态查看)、pgrep(可以指定名称查询)、pstree(用树形结构输出进程),如果我们要在后台启动进程,需要在命令后面加上&,然后用 jobs-l 可以查看后台运行的进程,fg可以将后台进程恢复到前台运行。kill和killall都可以终止进程,不过killall会终止所有指定名相关进程,所以要谨慎使用,两个命令都可以加上 -9 来强制终止。pkill可以删除指定用户的进程,也可加 -9。at命令是一次性计划命令,只执行一次。crontab可以通过设置周期来执行计划命令。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值