第九章 进程管理

第九章 进程管理

1.Linux进程概述

1.1 含义

程序是存储在磁盘上包含可执行机器指令和数据的静态实体,而进程是在操作系统中执行的特殊任务的动态实体
 
一个程序允许有多个进程,而每个运行中的程序至少由一个进程组成
 
Linux每个进程与其他进程都是彼此独立的,每个进程都有自己独立的权限与职责
 
进程之间有并列关系,还有父进程和子进程的关系
 
 
 
Linux进程的类型:
    交互进程、批处理进程、守护进程

1.2 进程的状态

进程的3种基本状态:运行状态、就绪状态、封锁(阻塞)状态
 
 
 
Linux的几个状态:
    运行态、等待态、停止态、僵死态

1.3 进程的执行工作模式

进程的执行模式:用户模式、内核模式
 
 
    用户模式:当前运行的是用户程序、应用程序、内核之外的系统程序
    内核模式:如果在用户执行过程中,出现系统调用或者发生中断事件,就要运行操作系统(即核心)程序
                在内核模式下,运行的进程可以执行机器的特权指令
                此时该进程的运行不受用户的干预,即使是root用户,也不能干预内核模式下进程的运行
 
 
进程的功能和运行的程序分类:
    系统进程:只运行在内核模式下执行操作系统代码,完成一些管理性的工作
             例如:内存分配和进程切换
    用户进程:通常在用户模式中执行,并通过系统调试或出现中断、异常时进入内核模式
通过了系统安全,用户进程只在用户模式下运行

2.守护进程

守护进程是Linux系统3种进程之一
守护进程可以完成很多重要工作,包括系统管理及网络服务等

2.1 守护进程的特点

守护进程(精灵进程):在后台运行而没有在终端或登录shell与之结合在一起的进程
                    守护进程经常在程序启动时开始运行,在系统结束时停止
                    这些进程没有控制终端,所以称为后台运行

2.2 守护进程的启动方法

启动守护进程有如下几种方法:
    1.在引导系统时启动
        通常在系统启动script的执行期间被启动,这些script一般存放在/etc/rc.d中
 
 
    2.人工手动从shell提示符启动
        任何具有相应的执行权限的用户都可以使用这种方法启动守护进程
 
 
    3.使用crond守护进程启动
        这个进程查询存放在/var/spool/cron/crontabs目录中的一组文件。这些文件规定
        了需要周期性执行的任务
 
 
    4.执行at命令启动
        在规定的日期和执行一个程序

3.启动进程

3.1 定时执行——at命令

at:需要在特定时间执行一些任务
    可以只是指定时间,也可以时间和日期一起指定
 
 
 
在3天后下午4点执行文件job中的作业
    at -f job 4pm + 3 days
 
列出队列中所有的作业
    atq
删除队列中ID为9的作业
    atrm 9

3.2 空闲时执行——batch命令

batch:用低优先级运行作业,在系统负载较低、资源比较空闲的时候执行命令
      该命令适合于占用资源较多的命令
      和at命令的功能完全相同,at命令是指定时间内很精确的执行指定命令

3.3周期性执行——cron和crontab命令

cron:在系统启动时,就由一个shell脚本自动启动,并进入后台
      一般的用户没有运行该命令的权限
      新创建的 cron 任务,不会马上执行,至少要过 2 分钟后才可以,当然你可以重启 cron 来马上执行
      因为crond是一个守护进程,所以在系统开机后,通过systemctl start crond启动一次以后(默认自动启动的),几乎就不需要再管它了,之后的操作都通过crontab来完成
       cron可以让系统在指定的时间,去执行某个指定的工作,我们可以使用crontab指令来管理cron机制
 
 
crontab:每分钟会定期检查是否有要执行的工作,如果有要执行的工作便会自动执行该工作
         该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行
         实际上安排周期性任务的命令是crontab,该命令用于安装、删除或者列出用于渠道cron后台进程的表格
 
 
 
 
cron循环执行某一命令。at命令只能执行一次,虽然都是计划任务的命令,这是这两个命令的区别
 
Cron由crontab(cron表)文件(配置文件)驱动 它指定shell命令以给定时间表定期运行
 
 
vi job 
45 11 22 7 * ls /etc/
crontab job
ca /var/spool/cron
cat usrl

4.进程管理

4.1 查看进程状态——ps命令

ps命令是用来查看目前系统中,有哪些正在进行的进程,以及他们的执行情况,可以不加任何参数,类似于 windows 的任务管理器
 
根据显示的信息可以确定那个进程正在运行、那个进程被挂起、进程已经运行多长时间、进程正在使用的资源、进程的相对优先级、以及进程的标识号等信息
 
 
ps -A 显示进程信息
ps -u root //显示root进程用户信息
ps -ef //显示所有命令,连带命令行

4.2 查看进程状态——top命令

动态显示过程,可以通过用户按键来刷新当前状态
 
 
top//显示进程信息
top -c//显示完整命令
top -b//以批处理模式显示程序信息
top -S//以累积模式显示程序信息
top -n 2//表示更新两次后终止更新显示
top -d 3//表示更新周期为3秒
top -p 139//显示进程号为139的进程信息,CPU、内存占用率等

4.3 终止进程kill

通常终止一个前台进程可以使用ctril+c
 
 
对于后台进程就需要使用kill命令来终止

4.4 前后台运行和暂停进程

长时间得不到结果可以使用ctrl+z将其暂停
 
 
    bg命令将其置于后台执行
    jobs查看其任务编号
    fg加上任务编号将其置于前台
 
 
如果需要开始就在后台执行某命令,只需要在其后加上一个&符号

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值