1 / 33

进程管理

进程管理. 1 、进程概述 2 、进程管理 3 、守护进程 4 、安排周期性任务. 本章学习目标. 理解进程的相关概念 掌握进程管理命令的使用 理解并管理守护进程 掌握周期性任务的设置方法. 1 、进程概述. 1 、进程( Process ) 是一个程序在其自身的虚拟地址空间中的一次执行活动。进程与程序是有区别的,进程不是程序,虽然它由程序产生。 程序只是一个静态的指令集合 ,不占系统的运行资源;而 进程是 一个随时都可能发生变化的、 动态的、使用系统运行资源的 。而且一个程序可以启动多个进程。. 1 、进程概述. 2 、进程的类型

reese
Télécharger la présentation

进程管理

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. 进程管理 1、进程概述 2、进程管理 3、守护进程 4、安排周期性任务

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

  3. 1、进程概述 1、进程(Process) • 是一个程序在其自身的虚拟地址空间中的一次执行活动。进程与程序是有区别的,进程不是程序,虽然它由程序产生。程序只是一个静态的指令集合,不占系统的运行资源;而进程是一个随时都可能发生变化的、动态的、使用系统运行资源的。而且一个程序可以启动多个进程。

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

  5. 1、进程概述 3、进程的启动方式 • 手工启动 • 前台:如用户键入一个命令“ls –l” • 后台:该进程甚为耗时,且用户也不急着需要结果的时候可采用后台启动此进程。命令后使用&符号。 • 调度启动 • cron • at:在指定时刻执行指定的命令序列

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

  7. 2、进程管理 • 操作举例 1)显示出当前用户在shell下所运行的进程 # ps 2)只查看用户osmond的进程 # ps -u osmond 3)列出系统中正在运行的所有进程的详细信息 # ps -aux 4)显示系统进程树 # ps -auxf

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

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

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

  11. 2、进程管理 nohup命令: • 功能:使进程在退出登录后仍旧继续执行。 • 格式:$ nohup <程序名> • 结果:如果程序program有结果输出,输出结果将会被保存到当前目录下的一个文件名为 nohup.out的文件中,如果用户在当前目录没有写的权限, 则结果将会被保存到用户主目录下的nohup.out文件中。 • 举例: # nohup mcal & nohup: appending output to `nohup.out'

  12. 2、进程管理 作业控制: 1)作业控制 • 是指控制当前正在运行的进程的行为,也称为进程控制。 • 作业控制是Shell的一个特性,使用户能在多个独立进程间进行切换。

  13. 2、进程管理 2)实施作业控制的常用命令和快捷键 • cmd &:命令后的&符号表示将该命令放到后台运行,以免霸占终端 • <Ctrl+d>:终止一个正在前台运行的进程(含有正常含义) • <Ctrl+c>:终止一个正在前台运行的进程(含有强行含义) • <Ctrl+z>:挂起一个正在前台运行的进程 • jobs:显示后台作业和被挂起的进程 • bg:在后台恢复运行一个被挂起的进程 • fg:在前台恢复运行一个被挂起的进程

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

  15. 3、守护进程 守护进程的运行方式: • 独立运行的守护进程 • 独立运行的守护进程由init脚本负责管理 • 独立运行的守护进程的脚本存放在/etc/rc.d/init.d/目录下 • 所有的系统服务都是独立运行的。如:crond、syslogd、xinetd等 • 由xinetd运行的守护进程 • 由xinetd管理的守护进程的配置文件存放在/etc/xinetd.d/目录下 • 默认的xinetd的主配置文件是/etc/xinetd.conf • xinetd本身是独立运行的守护进程

  16. 3、守护进程 守护进程的分类: • 系统守护进程:如atd、crond、lpd、syslogd、login等。 • 网络守护进程:如sshd、httpd、sendmail、xinetd等。

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

  18. 3、守护进程 • xinetd的配置选项: • disable:xinetd是否监控此服务 • server:指定由xinetd监控的服务器路径 • server_args:指定由xinetd监控的服务器的运行参数 • wait:是否为该服务提供多线程功能 • user:指定执行本守护进程的用户 • only_from:只允许指定的主机访问 • no_access:指定不能访问的主机 • per_source:每个客户机的最大连接数 • instances:服务器总共支持的最高连接数 • access_times:指定允许访问本守护进程的时间

  19. 3、守护进程 使用GUI工具管理守护进程: • system-config-services • “系统”→“管理”→“服务器设置”→“服务”

  20. 3、守护进程 使用TUI工具管理守护进程: • ntsysv是一个用于管理自动运行的守护进程的文本用户界面工具

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

  22. 3、守护进程 • 格式 • # chkconfig --list [server-name] • # chkconfig --add server-name • # chkconfig --del server-name • # chkconfig [--level levels] server-name <on|off|reset>

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

  24. 3、守护进程 • 举例 • 查看指定的服务在所有运行级别的运行状态。 # chkconfig --list sendmail • 显示由chkconfig管理的所有服务。 # chkconfig --list • 添加一个由chkconfig管理的服务。 # chkconfig --add httpd • 更改指定服务在指定运行级别的运行状态。 # chkconfig --level 35 httpd on # chkconfig httpd on

  25. 3、守护进程 使用CLI工具(service)管理守护进程: • 功能 • 启动或终止守护进程。 • 执行后立即生效。 • 格式 • # service server-name start/stop/restart • # service server-name status

  26. 3、守护进程 • 举例 • 终止vsftpd # service vsftpd stop • 启动httpd # service httpd start • 重新启动xinetd # service xinetd restart • 查看named的运行状态 # service named status

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

  28. 4、安排周期性任务 使用crontab命令安排自动运行的进程任务: • 功能:使用crontab命令装载cron进程所需要的crontab文件。 • 格式: • 格式1:crontab [-u user] [-l|-r|-e] • 格式2:crontab [-u user] filename • 其中: • -l:在标准输出上显示当前的crontab任务。 • -r:删除当前的crontab任务。 • -e:使用环境变量指定的编辑器编辑crontab文件。当结束编辑离开时,编辑后的文件将自动安装。 • filename:是一个crontab文件的来源文件

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

  30. 4、安排周期性任务 • 其中: • 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。

  31. 4、安排周期性任务 • 举例 • 在每周一,三,五的下午3:00系统进入维护状态,重新启动系统。 00 15 * * 1,3,5 shutdown -r +5 • 每小时的10分,40分执行用户目录下的innd/bbslin这个指令: 10,40 * * * * innd/bbslink • 每月每天的午夜 0 点 20 分, 2 点 20 分, 4 点 20 分....执行 echo "haha" 20 0-23/2 * * * echo "haha“ • 假若你的朋友kiki生日是 5 月 2 日,你想要在 5 月 1 日的 23:59 发封信给他,信的内容写在 /home/dmtsai/lover.txt 內了,该如何操作? 59 23 1 5 * mail kiki < /home/dmtsai/lover.txt

  32. 4、安排周期性任务 • Red Hat 还为超级用户提供了一种方便的自动安排进程任务的方法。 • 涉及的文件和目录 • /etc/crontab • /etc/cron.daily/ • /etc/cron.monthly/ • /etc/cron.weekly/ • /etc/cron.hourly/ • 超级用户可以在/etc/cron.*目录下建立脚本文件来安排cron任务, 且在脚本中只需写要安排执行的命令。 • 两个控制文件 • 允许表:/etc/cron.allow • 拒绝表:/etc/cron.deny

  33. 作业 1、什么是进程?它与程序有何关系? 2、如何查看进程?如何删除进程? 3、什么是守护进程?简述守护进程的运行方式和分类? 4、什么是cron任务?简述crontab文件各个字段的含义?执行 crontab -e 之后,如果输入以下这行,代表什么意思?* 15 * * 1-5 /usr/local/bin/tea_time.sh

More Related