资源简介 (共27张PPT)项目4 管理进程与系统服务Linux网络操作系统项目式教程(第二版)任务1进程管理和任务调度进程基本概念12进程监控和管理3任务调度管理1进程基本概念1进程基本概念进程存储在内部存储设备(内存),而程序存储在外部存储设备(如硬盘等)进程在内存中对应一个进程控制块(Process Control Block,PCB)每个进程都有一个进程号(Process ID,PID)进程是动态的,程序是静态的程序是代码和数据的集合,是经过编译后形成的可执行二进制文件进程是程序运行时在内存中产生的实例。一个程序可以产生多个进程实例进程具有多个状态,如就绪、运行、等待、挂起等进程是临时的,程序是持久的程序文件一旦生成就一直存储在磁盘中,除非手动删除进程只有在程序运行时才会产生。进程可能正常结束或异常退出进程与程序1进程基本概念每个进程都有一个进程号(Process ID,PID)除了PID为1的systemd进程以,其他进程都是由父进程创建的一个父进程可以创建多个子进程一般来说,当父进程终止时,子进程也随之终止,反之则不然父进程可以向子进程发送特定的信号对子进程进行管理如果父进程不能成功终止子进程,或者子进程因为某些异常情况无法自行终止,就会产生“僵尸”进程父进程与子进程1进程基本概念创建状态。操作系统为进程申请一个空白PCB并写入相关信息创建->就绪。进程资源需求可以满足进入就绪队列就绪->运行。选择一个进程并分配CPU时间片运行->终止。进程正常或异常终止运行->阻塞。等待某些事件才能继续运行阻塞->就绪。等待事件发生时会重新进入就绪状态运行->就绪。CPU时间片用完或被其他进程抢占退出状态。释放资源进程状态2进程监控与管理2进程监控与管理功能:查看系统中当前有哪些进程,选项非常多只能显示系统进程的静态信息ps 命令[zys@centos7 ~]$ ps aux // 注意,选项前可以不使用“-”USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMANDroot 2 0.0 0.0 0 0 S 06:41 0:00 [kthreadd]zys 11218 0.0 0.2 151784 5500 pts/1 S+ 09:15 0:00 vim file12进程监控与管理功能:查看进程间的相关性和依赖关系pstree 命令[zys@centos7 ~]$ pstree -pu | moresystemd(1)-+-ModemManager(6553)-+-{ModemManager}(6623)| `-{ModemManager}(6625)|-at-spi-bus-laun(9313,zys)-+-dbus-daemon(9318)---{dbus-daemon}(9319)2进程监控与管理功能:查看进程信息的动态变化,默认每3秒刷新一次进程信息显示系统硬件资源的占用情况等有助于系统管理员监控系统运行状态或分析系统故障top 命令[zys@centos7 ~]$ top -d 10top - 09:51:07 up 3:09, 3 users, load average: 0.23, 0.11, 0.07Tasks: 210 total, 3 running, 207 sleeping, 0 stopped, 0 zombie%Cpu(s): 0.4 us, 0.3 sy, 0.0 ni, 99.2 id, 0.0 wa, 0.0 hi, 0.1 si, 0.0 PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND9674 zys 20 0 567620 26968 19440 S 0.2 1.3 0:10.65 vmtoolsd7176 root 20 0 57382 19320 6100 S 0.1 1.0 0:02.47 tuned2进程监控与管理功能:将命令放入Bash后台运行而不影响终端窗口在命令结尾输入“&”符号即可通过“&”放入后台的进程仍然处于运行状态前后台进程切换-&[zys@centos7 ~]$ find . -name *history & // 将find命令放入后台运行[1] 9863 <== 这一行显示任务号和进程号./.bash_history <== 这一行是find命令的输出[1]+ 完成 find . -name *history <== 这一行表示find命令在后台运行结束2进程监控与管理进程在前台运行时按【Ctrl+Z】组合键,进程会被放入后台并被处于暂停状态前后台进程切换-【Ctrl+Z】组合键[zys@centos7 ~]$ find / -name file1 &>/dev/null // 按Enter键后再按【Ctrl+Z】组合键^Z[1]+ 已停止 find / -name file1 &>/dev/null[zys@centos7 ~]$ bc // 按Enter键后再按【Ctrl+Z】组合键^Z[2]+ 已停止 bc2进程监控与管理功能:查看从终端窗口放入后台的进程“+”号表示最近放入后台的命令“-”表示倒数第2个放入后台的命令前后台进程切换-jobs 命令[zys@centos7 ~]$ jobs -l[1]- 10008 停止 find / -name file1 &>/dev/null <== 倒数第2个放入后台的进程[2]+ 10025 停止 bc <== 最后一个放入后台的进程2进程监控与管理功能:使后台暂停的进程重新开始运行命令后跟任务号前后台进程切换-bg 命令[zys@centos7 ~]$ bg 1 ; jobs -l // bg命令后跟任务号[1]- find / -name file1 &>/dev/null &[1]- 10008运行中 find / -name file1 &>/dev/null &[[2]+ 10025 停止 bc2进程监控与管理功能:把后台的进程恢复到前台继续运行前后台进程切换-fg 命令[zys@centos7 ~]$ jobs -l[2]+ 10025 停止 bc[zys@centos7 ~]$ fg 2 // fg命令后跟任务号bc11*16 <== 这一行是在bc交互环境中输入的176 <== 这一行是11*16的结果quit <== 退出bc交互环境2进程监控与管理功能:通过内核向进程发送信号以执行某些特殊的操作,如挂起进程、正常退出进程或强制终止进程等终止进程-kill 命令[zys@centos7 ~]$ ps -f -C vim,bash,psUID PID PPID C STIME TTY TIME CMDzys 10341 10334 0 08:31 pts/0 00:00:00 bashzys 13457 10520 0 11:26 pts/1 00:00:00 vim file1zys 13744 10341 0 11:40 pts/0 00:00:00 ps -f -C vim,bash,ps[zys@centos7 ~]$ kill -9 13457 // 结束PID为13457的进程3任务调度管理3任务调度管理功能:设置需要周期执行的任务crontab-命令格式crontab [ -u uname ] | -e | -l | -r3任务调度管理crontab-示例[zys@centos7 ~]$ crontab -e*/3 * * * * echo “time is `date`” >>/tmp/cron_test <== 输入该行内容后保存设置并退出[zys@centos7 ~]$ crontab -l // 查看当前crontab周期任务*/3 * * * * echo “time is `date`” >>/tmp/cron_test[zys@centos7 ~]$ tail -f /tmp/cron_test // 观察文件/tmp/cron_test的实时变化“time is 2022年 12月 04日 星期日 06:15:01 CST”“time is 2022年 12月 04日 星期日 06:18:01 CST”“time is 2022年 12月 04日 星期日 06:21:01 CST”3任务调度管理功能:设置在指定的时间执行某个一次性任务time 参数是计划任务的执行时间,可以采用下列时间格式的任何一种HH:MM [ am|pm] [Month] [Date] [Year],如11:10 am Jan 18 2022HH:MM YYYY-MM-DD,如11:10 2022-01-18MMDDYY、MM/DD/YY,指定日期,如011822、01/18/22特定时间:如now表示当前时刻,noon代表12:00 pmtime + n [minutes | hours | days | weeks],表示在某个时间点之后某一时刻执行,如now + 3 hours表示当前时刻的3小时后at-命令格式at [ -l ] [ -f fname ] [-d jobnumber ] time3任务调度管理at-示例[zys@centos7 ~]$ at now +3 minutesat> echo "time is `date`" >> /tmp/at_test // 这是要执行的命令at> // 按【Ctrl+D】组合键退出job 1 at Sun Dec 4 06:20:00 2022[zys@centos7 ~]$ at -l // 查看at计划任务,相当于atq命令1 Sun Dec 4 06:20:00 2022 a zys[zys@centos7 ~]$ tail -f /tmp/at_test // 观察文件/tmp/at_test的实时变化time is 2022年 12月 04日 星期日 06:20:00 CST // 只在指定时间执行一次任务2系统服务管理1系统启动和初始化4系统管理工具4系统服务管理1系统服务管理系统启动过程BIOS自检。BIOS是开机后计算机主动执行的第1个程序。BIOS从CMOS读取计算机硬件设备的配置信息,检查外围硬件设备是否能够正常工作启动引导程序。BIOS根据启动设备的顺序查找用于启动操作系统的驱动设备,并从中读取启动引导程序。完成启动引导程序的读取之后,启动引导程序开始接管系统启动的控制权加载操作系统内核。启动引导程序最主要的功能是加载操作系统内核,并将系统启动的控制权转交给内核操作系统初始化。系统初始化工具负责操作系统的初始化工作,准备操作系统的运行环境2系统服务管理系统启动工具-systemdsystemd是常驻内存的守护进程,PID为1,其他进程都是systemd的直接或间接子进程并行启动系统服务,即同时启动多个互不依赖的系统服务支持按需响应(on-demand)的服务启动方式,当有用户使用这个服务时就启动,使用完即可关闭,直到下次使用时再启动把系统服务定义为一个服务单元(unit),每个单元都有对应的单元配置文件,相当于SysVinit里的服务脚本兼容SysVinit启动脚本,仍然可以使用这些这些脚本启动系统服务已经成为各Linux发行版的系统初始化工具3系统服务管理系统管理工具-systemctlsystemctl cmd sername.service谢谢 展开更多...... 收起↑ 资源预览