系统运行级别
linux系统总共有7个运行级别,不同级别用数字表示,取值范围为 0 ~ 6。
- 0 :关机命令
- 1:单用户模式,关闭了不必要的服务,主要用于系统修复。
- 2:不完全的命令模式,不包含NFS服务()
- 3:完全的命令模式,即标准字符界面。一般服务器都运行在这个级别
- 4:系统保留,暂不使用。
- 5:图形界面模式。
- 6:重启
其中0级别和6级别由于不一定能正确的关闭所有服务,不建议使用。类似使用电源按钮关闭PC。
查看运行级别
- $runlevel
输出两个数字,表示系统上一个运行级别和当前运行级别。如果没有修改启动级别会返回一个 ( N 数字),其中数字表示系统当前运行级别。
修改临时运行级别
- $init 数字
临时修改系统运行界别,数字只能是0~7。注意尽量不要使用0或者6。
修改默认运行级别
默认运行级别表示系统启动之后进入的级别。在/etc/inittab文件,“id:5:initdefault:”中的数字表示默认启动界别,修改即可。注意修改时不能修改为0级别和6级别。
服务分类
linux中的服务指应用程序提供给用户的功能,应用程序运行后,在系统中以后台运行的进程方式存在。用户使用服务实际上是访问这些进程。对服务的分类可从应用程序的角度展开,分为PRM包服务和源码包服务。
一般地,用户通过协议、IP、端口可以访问linux服务器上的某一项服务。其中,协议约定双方的通信方式。IP和端口定位服务的位置。举个例子,IP相当于一个房子,端口相当于进入这个房子的门。房子只有几个门,但是一个IP地址可有65536个端口。一个IP对应一台服务器,上面跑了很多服务,端口号则用于区分这些服务,即一个服务对应一个访问端口。一般地,10000以内的端口是给系统预留端口,其他端口可用于用户应用。
在/etc/services文件中,可以查看所有端口使用情况。
基于rpm包安装的服务
rpm包服务是指应用程序使用rpm包,可使用RPM命令管理,分为独立服务和基于xinetd服务。
- 独立服务:直接运行在内存中,用户可直接访问服务。
- 基于xinetd的服务:服务不运行在内存,用户通过xinetd访问服务。xinetd是一种超级守护进程,可起到请求转发的作用。这种服务正逐渐淘汰。
基于源码包安装的服务
源码包服务指应用程序已源码的形式存在,默认情况下,用户需自行编译、安装的服务。
同RPM包安装到默认位置不同,源码包的安装位置未采用默认安装位置,因此它的服务管理方式默认不能使用service、chkconfig等命令。下文介绍了通过配置将源码包归入到RPM管理模式下,但容易造成混乱,不建议这么做。
查看已安装服务
由于rpm包和源码包的安装方式不同,rpm安装在默认位置,源码包安装在指定位置(一般/usr/local),因此对应不同的服务查看方式。
- 查看基于rpm包的服务
- 由于rpm安装在默认位置,可使用RPM提供的命令查看
- $chkconfig --list
- 输出所有基于rom包安装的服务。
- 同时也输出服务在7种运行级别中的自启动设置。这个命令输出的自启动设置,表示下一次系统重启或开机时,服务是否跟随系统启动。与当前系统中服务是否已启动没有关系。 譬如network的输出结果是在系统 2、3、4、5级别启用,但在当前系统中network并不一定启动,这是因为有可能在当前系统状态下修改了network的自启动设置。
- 查看基于源码包安装的服务
- 由于源码包安装用户可定义安装位置,因此用户可到指定位置查看。有多少软件包就表示安装了多少软件。
- 由于一般情况下安装在/usr/local中,查看该目录下即可看到使用源码方式安装的软件
服务的启动与自启动
在操作系统层面,对服务的管理主要是配置相应的运行环境、启动应用程序、对外提供服务。启动服务包含按需实时启动、配置服务自启动。服务启动完成之后,接受用户的具体请求。此时,操作系统不必再关注该服务了。
- 服务启动:在当前系统中让服务运行,并提供功能。表示一种动作,等同于 “启动服务”。
- 服务自启动:系统的服务在下一次开机或重启之后自动启动。表示一种静态设置。
在linux中服务分为rpm包服务和源码包服务,对应地,服务的启动和自启动也分为两类。
启动rpm服务及配置自启动
- 启动独立服务
- $/etc/init.d/独立服务名XX start|stop|status|restart
- 这种方式找到独立服务的路径,然后启动
- 这是一种通用的启动服务方式,适用于所有linux版本
- $service 独立服务名 start|stop|restart|status
- 这是方式使用service命令
- 这个命令适用于redhat系列的linux
- $/etc/init.d/独立服务名XX start|stop|status|restart
- 配置服务自启动
- 方式一:$chkconfig [–level 运行级别] 独立服务名 [on|off]
- 方式二:修改/etc/rc.d/rc.local文件,建议使用此方式。
- 方式三:使用ntsysv命令,伪图形方式,该命令为redhat特有。
启动源码包服务及配置自启动
-
启动服务。使用绝对路径调用启动脚本启动服务
不同源码包的启动脚本不同。可通过查看源码包的安装说明,查看启动脚本的方法。一般地,在安装文件的bin目录中包含服务的启动脚本。其后跟上stop或start。类似 “/usr/local/apache2/bin/apachectl start|stop” -
配置服务自启动
将服务的绝对路径的启动命令加入到 /etc/rc.d/rc.local或者/etc/rc.local(rc.local是rc.d/rc.local的软链接)中 -
配置服务被默认服务管理命令识别
在/etc/init.d/目录下存储几乎所有的服务启动脚本,即包含可被service命令管理的服务,rpm包方式安装的服务都会在该目录下创建一个启动脚本文件。对于源码包方式安装的服务,则可以通过将启动脚本软链接到/etc/init.d目录下,实现被service命令管理。类似“ln -s /usr/local/apache24/bin/apachectl /etc/init.d/apachee”。同样地,也可以通过配置实现chkconfig、ntsyssv对源码包服务的管理。
软链接的源文件要使用绝对路径
查看已启动的服务
- $netstat -tlunp
- network status 列出系统中所有的已经启动的服务
- -t:列出TCP数据
- -u:列出UDP数据
- -l:列出正在监听的网络服务,不包含已经连接的网络服务
- -n:用端口号来显示服务,而不是用服务名
- -p:列出服务的进程ID,即PID