1 / 35

本章重点内容

本章重点内容. 进程概述 进程管理 守护进程 安排周期性任务. 本章学习目标. 理解进程的相关概念 掌握进程管理命令的使用 理解并管理守护进程 掌握周期性任务的设置方法. 进程的概念. 进程( Process ) 是一个程序在其自身的虚拟地址空间中的一次执 行活动。 之所以要创建进程,就是为了使多个程 序可以并发的执行,从而提高系统的资源利用率 和吞吐量。. 进程的概念. 进程的类型 交互进程:由一个 Shell 启动的进程。交互进程既可以在前台运行,也可以在后台运行。 批处理进程:不与特定的终端相关联,提交到等待队列中顺序执行的进程。

maine
Download Presentation

本章重点内容

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 本章重点内容 进程概述 进程管理 守护进程 安排周期性任务

  2. 本章学习目标 理解进程的相关概念 掌握进程管理命令的使用 理解并管理守护进程 掌握周期性任务的设置方法

  3. 进程的概念 进程(Process) 是一个程序在其自身的虚拟地址空间中的一次执 行活动。 之所以要创建进程,就是为了使多个程 序可以并发的执行,从而提高系统的资源利用率 和吞吐量。

  4. 进程的概念 进程的类型 交互进程:由一个Shell启动的进程。交互进程既可以在前台运行,也可以在后台运行。 批处理进程:不与特定的终端相关联,提交到等待队列中顺序执行的进程。 守护进程:在Linux在启动时初始化,需要时运行于后台的进程。

  5. 进程的概念 进程的启动方式 手工启动 前台 后台 调度启动 cron crontab at

  6. 查看系统中的进程 ps命令功能 可以确定 有哪些进程正在执行和执行的状态 进程是否结束、进程有没有僵死 哪些进程占用了过多的系统资源等

  7. 查看系统中的进程 ps命令格式 # ps [选项] 常用选项 a:显示所有进程 e:在命令后显示环境变量 u:显示用户名和启动时间等信息 x:显示所有非控制终端的进程 f:显示进程树 w:宽行输出 -e:显示所有进程 -f:显示全部

  8. 查看系统中的进程 操作举例 显示出当前用户在shell下所运行的进程 # ps 只查看用户osmond的进程 # ps -u osmond 列出系统中正在运行的所有进程的详细信息 # ps -aux 显示系统进程树 # ps -auxf

  9. 杀死系统中的进程(1) 为什么要杀死进程 该进程占用了过多的CPU时间 该进程锁住了一个终端,使其他前台进程无法运行 运行时间过长,但没有预期效果 产生了过多到屏幕或磁盘文件的输出 无法正常退出

  10. 杀死系统中的进程(1) 常用进程信号 HUP/SIGHUP/1:从终端上发出的结束信号,发送给守护进程可使其重新读取配置文件 INT/SIGINT/2:从键盘上发出的中断信号(ctrl+c) QUT/SIGQUT/3:从键盘上发出的退出信号(ctrl+\) KILL/SIGKILL/9:结束接受信号的进程(强行杀死进程) TERM/SIGTERM/15:kill命令默认的终止信号 STOP/SIGSTOP/19:从键盘来执行的信号(ctrl+d)

  11. 杀死系统中的进程(1) 在系统中通过向进程发送进程信号实现对进程的控制。 向进程发送进程信号可以使用kill和killall等命令。

  12. 杀死系统中的进程(2) kill命令 功能:向指定PID的进程发送进程信号 格式:kill [-signal] <PID> 举例: 杀死PID为1621的进程 $ kill 1621 强行杀死PID为1621的进程 $ kill -9 1621

  13. 杀死系统中的进程(2) killall命令 功能:向指定进程名的进程发送进程信号 格式:killall [-signal] <进程名> 举例: 杀死进程名为cat的所有进程 $ killall cat 强行杀死进程名为named的进程 # killall -9 named 使xinetd守护进程重新读取其配置文件 # killall -1 xinetd

  14. 作业控制 作业控制 是指控制当前正在运行的进程的行为。 作业控制是Shell的一个特性,使用户能在多个独立进程间进行切换。

  15. 作业控制 实施作业控制的常用命令和快捷键 cmd &:命令后的&符号表示将该命令放到后台运行,以免霸占终端 <Ctrl+d>:终止一个正在前台运行的进程(含有正常含义) <Ctrl+c>:终止一个正在前台运行的进程(含有强行含义) <Ctrl+z>:挂起一个正在前台运行的进程 jobs:显示后台作业和被挂起的进程 bg:在后台恢复运行一个被挂起的进程 fg:在前台恢复运行一个被挂起的进程 操作举例:参见教材操作步骤10.1。

  16. 守护进程的概念(1) 守护进程(Daemon) 是在计算机启动时就被运行的,并在系统中持续 运行的进程, 它等待着随时为客户提供自身负责 的服务。 守护进程的工作 就是打开一个端口,并且等待(Listen)进入的 连接。 如果客户提请了一个连接,守护进程就创 建(fork)子进程来响应此连接, 而父进程继续 监听更多的服务请求。正因为如此,每个守护进 程都可以处理多个客户服务请求。

  17. 守护进程的概念(1) 网络守护进程xinetd(extended internet daemon) xinetd是新一代的网络守护进程服务程序 为了节省资源,引入了xinetd用于监控网络服务,如telnet、talk等。 xinetd就是一个管理很多网络服务的守护进程,它同时监听着它所管理的服务的所有端口, 当有客户提出服务请求时,它会判断这是对哪一个服务的请求,然后再开启此服务的守护进程, 由该守护进程处理客户的请求。 查看系统当前运行的守护进程 pstree

  18. 守护进程的概念(2) 守护进程的运行方式 独立运行的守护进程 独立运行的守护进程由init脚本负责管理 独立运行的守护进程的脚本存放在/etc/rc.d/init.d/目录下 所有的系统服务都是独立运行的。如:crond、syslogd、xinetd等 由xinetd运行的守护进程 由xinetd管理的守护进程的配置文件存放在/etc/xinetd.d/目录下 默认的xinetd的主配置文件是/etc/xinetd.conf xinetd本身是独立运行的守护进程 守护进程的分类 系统守护进程:如atd、crond、lpd、syslogd、login等。 网络守护进程:如sshd、httpd、sendmail、xinetd等。

  19. xinetd的配置文件 Red Hat 中xinetd 的配置文件 主配置文件:/etc/xinetd.conf 每一个由xinetd启动的服务在目录/etc/xinetd.d/下都有一个以服务名称命名的配置文件 在主配置文件/etc/xinetd.conf中将/etc/xinetd.d目录下的所有文件的内容使用 includedir /etc/xinetd.d语句包含进来。

  20. 管理守护进程 使用GUI工具管理守护进程 redhat-config-services “主菜单”→“系统设置”→“服务器设置”→“服务” 使用TUI工具管理守护进程 ntsysv是一个用于管理自动运行的守护进程的文本用户界面工具。

  21. 使用CLI工具(chkconfig)管理守护进程 功能 添加指定的新服务 清除指定的服务 显示由chkconfig管理的服务 改变服务的运行级别 检查指定服务的启动状态

  22. 使用CLI工具(chkconfig)管理守护进程 格式 # chkconfig --list [server-name] # chkconfig --add server-name # chkconfig --del server-name # chkconfig [--level levels] server-name <on|off|reset>

  23. 使用CLI工具(chkconfig)管理守护进程 说明 server-name:是由chkconfig命令管理的服务的名字。 --list:显示由chkconfig管理的所有服务。 --level levels:指定某服务要在哪个运行级别中开启或关闭,levels的范围在0-6之间。 --add:添加由chkconfig进行管理的指定服务。 --del:删除由chkconfig进行管理的指定服务。 on|off:在指定的运行级别,开启或关闭服务。不指定运行级别时,默认的运行级别是3、4、5。 reset:在指定的运行级别,重置该服务,使其状态返回到操作系统启动时的默认状态。

  24. chkconfig 命令使用举例 查看指定的服务在所有运行级别的运行状态。 # chkconfig --list sendmail 显示由chkconfig管理的所有服务。 # chkconfig --list 添加一个由chkconfig管理的服务。 # chkconfig --add httpd 更改指定服务在指定运行级别的运行状态。 # chkconfig --level 35 httpd on # chkconfig httpd on # chkconfig --level 4 sendmail off # chkconfig imap off

  25. 使用CLI工具(service)管理守护进程 功能 启动或终止守护进程。 执行后立即生效。 格式 # service server-name start/stop/restart # service server-name status 说明 server-name:对于独立运行的守护进程就是服务本身;对于由xinetd启动的进程就是xinetd。 start/stop/restart:分别为启动/终止/重新启动服务。 status:查看守护进程当前的运行状态。

  26. service 命令使用举例 终止vsftpd # service vsftpd stop 启动httpd # service httpd start 重新启动xinetd # service xinetd restart 查看named的运行状态 # service named status

  27. cron守护进程简介 功能 安排每小时、每天、每月或每周都要定期执行的进程任务。 cron的运行机制 cron进程搜索crontab文件并载入内存 (crontab文件即/etc/crontab文件和/var/spool/cron/目录下以用户名命名的文件)。 cron进程启动以后,它将首先检查是否有用户设置了crontab文件, 如果没有就转入“休眠”状态,释放系统资源。 cron进程每分钟醒来一次,查看crontab文件决定当前是否有需要执行的命令。 命令执行结束后,任何输出都将作为邮件发送给crontab的所有者。

  28. 使用crontab命令安排自动运行的进程任务 功能:使用crontab命令装载cron进程所需要的crontab文件。 格式: 格式1:crontab [-u user] [-l|-r|-e] 格式2:crontab [-u user] filename

  29. 使用crontab命令安排自动运行的进程任务 其中: -u user: 修改指定用户的crontab文件。如果不指定该选项,crontab将默认为是操作者本人的crontab。 -l:在标准输出上显示当前的crontab任务。 -r:删除当前的crontab任务。 -e:使用环境变量指定的编辑器编辑crontab文件。当结束编辑离开时,编辑后的文件将自动安装。 filename:是一个crontab文件的来源文件 自动安排进程任务举例(参见教材操作步骤10.2)

  30. crontab文件的来源文件 crontab文件的来源文件存在的形式 一个符合语法规则的纯文本文件,使用第2种格式的crontab命令装载 使用第2种格式的crontab命令时,它是一个文本编辑器(如vi)的临时文件,编辑结束自动装载 crontab文件的来源文件的格式 每一行格式为: minute hour day-of-month month-of-year day-of-week [username] commands

  31. crontab文件的来源文件 其中: minute:一小时中的哪一分钟(0~59) hour:一天中的哪个小时(0~23) day-of-month:一月中的哪一天(1~31) month-of-year:一年中的哪一月(1~12) day-of-week:一周中的哪一天(0~6) username:以指定的用户身份执行commands commands:执行的命令(可以是多行命令或者是脚本调用) 五个时间字段的语法说明 不能为空,可以使用统配符*表示任何时间。 可以指定多个值,它们之间用逗号间隔。例如:1,3,7。 可以指定时间段,用减号间隔。例如:0-6。 可以用/n表示步长。例如:8-18/2表示时间序列8,10,12,14,16,18。

  32. Red Hat 安排cron任务 除了每个用户都可以安排自己的cron任务之外, Red Hat 还为超级用户提供了一种方便的自动安排进程任务的方法。

  33. Red Hat 安排cron任务的方法 涉及的文件和目录 /etc/crontab # cat /etc/crontab SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root HOME=/ # run-parts 01 * * * * root run-parts /etc/cron.hourly 02 4 * * * root run-parts /etc/cron.daily 22 4 * * 0 root run-parts /etc/cron.weekly 42 4 1 * * root run-parts /etc/cron.monthly

  34. Red Hat 安排cron任务的方法 涉及的文件和目录 /etc/cron.daily /etc/cron.monthly /etc/cron.weekly /etc/cron.hourly 超级用户可以在/etc/cron.*目录下建立脚本文 件来安排cron任务, 且在脚本中只需写要安 排执行的命令。

  35. 控制安排crontab任务的人员 两个控制文件 允许表:/etc/cron.allow 拒绝表:/etc/cron.deny /etc/cron.allow文件和/etc/cron.deny文件的格式 每行只能包含一个用户名,且不能有空格字符。 cron进程读取控制文件的顺序 首先查找/etc/cron.allow文件,若该文件存在,则只有包含在此文件中的用户允许使用cron。 若/etc/cron.allow文件不存在,系统继续查找/etc/cron.deny文件,若该文件存在, 则只有包含在此文件中的用户禁止使用cron。 无论root是否包含在/etc/cron.allow文件或/etc/cron.deny文件中,root都可以使用cron。

More Related