服务,其实就是运行在操作系统后台的一个或者多个应用程序,为计算机系统或用户提供某项特定的服务。
在windows操作系统中,其在后台也运行了许许多多的服务。例如我们装的杀毒软件,其在后台运行了许多我们看不见的服务程序,通过这些服务来为用户或者计算机系统来提高特定的功能。服务通常是不中断运行的,随时准备接受请求,从而提供某项服务。例如我们日常使用的网页服务,其就是由一个运行在所访问网站的服务器上的httpd服务提供的服务,我们通过在浏览器输入需要访问网站的域名,服务器端的 httpd 服务就会随时的接收我们发送过来的请求,并响应回给我们的用户。我们Linux系统绝大多数服务都是网络服务,例如邮件服务、FTP服务、httpd服务等等,网络服务可以使为其他用户、其他计算机提供特定的服务。
对于Linux系统,System V提供了运行级别的概念,它一共提供了7种运行级别,分别是如下的7种服务
0 关机
1 单用户模式
2 不带网络的多用户模式
3 带网络的多用户模式,纯文本界面
4 未使用
5 带网络的多用户模式,图形界面
6 重启
对于我们一般情况下的使用来说,通常使用的是级别3和级别5,每个级别下都有对应的启动、不启动的服务,比如单用户模式下,所有的服务都是不启动
二:查看系统有哪些服务
在/etc/rc.d/init.d下所有system v服务的运行脚本,所以要开系统有哪些服务,只要通过cd /etc/rc.d/init.d 再ls就行了,下面是以centos6.9为例子查看系统具有哪些服务。
三:如何启用这些服务
在centos6当中,对于所有的这些服务,我们通过 service 这个命令来进行统一的管理 命令 service 可以调用指定服务的System V脚本,并执行指定的动作具体的用法是: service 服务名 [start | stop | restart | status] 分别是启动服务、关闭服务和重新启动服务,如果要查看以运行的服务状态,则status命令,以sshd服务为例,看看开启,重启,停止,以及查看服务状态
四:查看系统中的服务的运行状态
在 /etc/rc.d/这个目录下,除了我们刚才的 init.d 这个目录,我们还发现还有其它的 一些目录,诸如 rc0.d、rc1.d等,这些目录就分别对应了系统的7种启动级别,每个目录里面都存放了许多的文件,每个文件对应着一个特定的服务,并标志有是否开机启动以及启动顺序,例如我们进入到 rc5.d 这个目录 ,会看到如下的一些文件
我们发现,在这些目录里面,存放的都是软链接文件,不过这每一个链接文件的名字都有着严格的规定。每一个链接文件都由3部分组成。
例如:
K01smartd -> ../init.d/smartd S12rsyslog -> ../init.d/rsyslog
第一个部分第一个是字母K或者S,表示该服务是不是是不是开机自动启动,K表示开机不启动,S表示开机就启动
第二个部分是字母后面的数字,这个数字代表的是该服务的启动顺序,服务启动的顺序非常的重要,例如我们的网络服务需要在邮件服务之前启动,要不然邮件服务在没有网络服务的支持下就无法正常运行了
第三个部分就是对应服务的名字,该链接文件其实都是指向的是 init.d 这个目录下的System V脚本文件
这时候,如果我们要修改某项服务的启动顺序,可以使用chkconfig命令
五:chkfig命令的用法
chkconfig --list
,可以跟上服务名,单列出一项服务,不跟的话就是 查看所有服务的开机启动情况,第一列是服务名,第二列的0代表0级别下,off代表不启动,第二列的1代表1级别下,off同样是不启动,第三列的on就代表在3级别下会启动服务,以此类推
chkconfig 服务名 on 开机自动启动,例如sshd服务
chkconfig 服务名 off 开机不自动启动,例如sshd服务
chkconfig –level 级别 服务名 on|off 设置,例如将sshd服务的12345级别都设置成on