最近升级日期:2009/09/14
4. 系统开启的服务
4.1 观察系统启动的服务 4.2 配置启动后立即启动服务的方法: chkconfig, ntsysv 4.3 CentOS 5.x 默认启动的服务简易说明 系统开启的服务 好了,现在假设你已经知道了 daemons 的启动文件放置的目录,也知道了服务与 port
的对应,那么要如何查询目前系统上面已经启动了的服务呢?不要再打混了!已经学过了
ps 与 top
应该要会应用才对耶!没错,可以使用 ps 与 top 来找寻已经启动了的服务的程序与他的
PID 呢!不过,我们怎么知道该服务启动的 port 是哪一个?呵呵!好问题!可以直接使用
netstat 这个网络状态观察命令来检查我们的
port 呢!甚至他也可以帮我们找到该 port 的程序呢 (PID)!这个命令的相关用途,我们在
第十七章程序管理已经谈过了,不清楚的话请回去查一查先~这里仅介绍如何使用喔~
观察系统启动的服务 观察系统已启动的服务方式很多,不过,我们最常使用 netstat 来观察。基本上,以 ps 来观察整个系统上面的服务是比较妥当的,因为他可以将全部的 process 都找出来。不过,我们比较关心的还是在于有启动网络监听的服务啊, 所以鸟哥会比较喜欢使用 netstat 来查阅啦。
利用 netstat 可以取得很多跟网络有关的服务信息,透过这个命令,我们可以轻易的了解到网络的状态, 并且可以透过 PID 与 kill 的相关功能,将有问题的数据给他剔除说~ 当然啦,要更详细的取得 PPID 的话,才能够完全的抵挡有问题的程序啦! 另外,除了已经存在系统当中的 daemon 之外,如何在一启动就完整的启动我们所需要的服务呢? 底下我们就来谈一谈 chkconfig 及 ntsysv 这两个好用的东西! 配置启动后立即启动服务的方法 就如同上面提到的,我们使用 netstat 仅能观察到目前已经启动的 daemon ,使用 service 这个命令或者是『 /etc/init.d/* start 』的方法则仅能在目前的环境下立即启动某个服务而已。 那么重新启动后呢?该服务是否还是继续的自动启动?这个时候我们就得要了解一下,到底我的 Linux 主机是怎么启动的呢?
关于更多启动流程的详细说明,我们会在第二十章时再来跟大家说明。 由上面的流程你可以看到系统服务在启动时就可以被启动的地方是在第六个步骤,而事实上第六个步骤就是以不同的运行等级呼叫不同的服务啦! 那么什么叫做运行等级呢? 我们在启动 Linux 系统时,可以进入不同的模式喔,这模式我们称为运行等级 (run level)。不同的运行等级有不同的功能与服务,
目前你先知道正常的运行等级有两个,一个是具有 X 窗口接口的 run level 5 ,另一个则是纯文本界面的 run level 3。
由于默认我们是以图形接口登陆系统的,因此可以想象得到的是,我们应该是在 run level 5 的环境中啦!
那你怎么知道 run level 5 有哪些服务默认可以启动呢?这就得要使用特殊的命令来查询啊!
瞧! chkconfig 是否很容易管理我们所需要的服务呢?真的很方便啦~ 你可以轻松的透过 chkconfig 来管理 super daemon 的服务喔!另外,你得要知道的是, chkconfig 仅是配置启动时默认会启动的服务而已, 所以该服务目前的状态如何是不知道的。我们举个底下的例子来说明好了:
上面的范例四并没有启动 httpd 的原因很简单,因为我们并没有使用 /etc/init.d/httpd start 嘛!我们仅是配置启动时启动而已啊!那我们又没有重新启动,所以当然使用 chkconfig 并不会导致该服务立即被启动!也不会让该服务立即被关闭,而是只有在启动时才会被加载或取消加载而已喔。而既然 chkconfig 可以配置启动是否启动,那么我们能不能用来管理 super daemon 的启动与关闭呢?非常好!我们就来试看看底下的案例:
最后一个命令你会发现原本 rsync 不见了!这样是否很轻易的就能够启动与关闭你的 super daemon 管理的服务呢!
基本上, chkconfig 真的已经很好用了,不过,我们的 CentOS 还有提供一个更不错用的, 那就是 ntsysv 了!注意喔, chkconfig 很多的 distributions 都存在,但是 ntsysv 则是 Red Hat 系统特有的!
一般我们都是直接输入 ntsysv 即可进入管理画面了,整个画面如下图所示: 图 4.2.1、 ntsysv 的运行示意图 上图中的中间部分是每个服务默认启动是否会启动的配置值,若中括号内出现星号 (*) 代表默认启动会启动,否则就是不会在启动时启动啦。 你可以使用上下键来移动中括号内的光标到你想要变更的那个服务上头,然后按下空格键就能够选取或取消啰。如果一切都选择完毕后, 你可以使用 [tab] 按键来移动光标到 [OK] [Cancel] 等按钮上面,当然啦,按下 [Ok] 就是确认你的选取会生效啰。 总结一下上述的按钮功能:
图 4.2.2、 ntsysv 的运行示意图 上图是鸟哥将光标游动到 atd 这个服务上头后,再按下 [F1] 所出现的结果,所以啰,你可以透过 ntsysv 去观察默认启动启动的服务,
还能够查阅该服务的基本功能为何,这样就能够稍微厘清一下该服务是否需要存在啰!这样理解了吧!
现在你知道 chkconfig 与 ntsysv 是真好用的东西,那么如果我自己写了一个程序并且想要让该程序成为系统服务好让 chkconfig 来管理时, 可以怎么进行呢?只要将该服务加入 init 可以管理的 script 当中,亦即是 /etc/init.d/ 当中即可。 举个例子,我们在 /etc/init.d/ 里面创建一个 myvbird 文件,该文件仅是一个简单的服务范例,基本上,没有任何用途.... 对于该文件的必须性是这样的:
关于所谓的顺位问题,我们会在第二十章介绍,这里你先看看即可。 你该如何进行呢?可以这样做:
这个文件很好玩喔!你可以参考你自己系统上面的文件;基本上,比较重要的是第二行,他的语法是: 『 chkconfig: [runlevels] [启动顺位] [停止顺位] 』其中, runlevels 为不同的 run level 状态,启动顺位 (start number) 与 结束顺位 (stop number) 则是在 /etc/rc.d/rc[35].d 内创建以 S80myvbird 及 K70myvbird 为档名的配置方式!
chkconfig 真的是个不错用的工具吧!尤其是当你想要自己创建自己的服务时! ^_^ CentOS 5.x 默认启动的服务简易说明 随着 Linux 上面软件支持性越来越多,加上自由软件蓬勃的发展,我们可以在 Linux 上面用的 daemons 真的越来越多了。所以,想要写完所有的 daemons 介绍几乎是不可能的,因此,鸟哥这里仅介绍几个很常见的 daemons 而已, 更多的信息呢,就得要麻烦你自己使用 ntsysv 或者是 vi /etc/init.d/* 里面的文件去瞧一瞧啰~ ^_^! 底下的建议主要是针对 Linux 单机服务器的角色来说明的,不是桌上型的环境喔!
上面的服务是 CentOS 5.x 默认有启动的,这些默认启动的服务很多是针对壁纸计算机所设计的,所以啰,如果你的 Linux 主机用途是在服务器上面的话,那么有很多服务是可以关闭的啦!如果你还有某些不明白的服务想要关闭的, 请务必要搞清楚该服务的功能为何喔!举例来说,那个 syslog 就不能关闭,如果你关掉他的话,系统就不会记录登录文件, 那你的系统所产生的警告信息就无法记录起来,你将无法进行 debug 喔。 底下鸟哥继续说明一些可能在你的系统当中的服务,只是默认并没有启动这个服务就是了。只是说明一下, 各服务的用途还是需要您自行查询相关的文章啰。
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
本网页主要以Firefox配合解析度 1024x768 作为设计依据 鸟哥自由软件整合应用研究室