Linux基础之系统服务

系统服务

Centos5

1、什么是daemon与服务(service)

1.1、daemon的主要分类

如果按照daemon的启动与管理方式来区分,基本上,可以将daemon分为可独立运行启动的stand alone,与通过一个super daemon来统一管理的服务这两个大类。

  1. stand_alone:此daemon可以自行单独启动服务

    这种类型的daemon可以自行启动而不必通过其他机制的管理;daemon启动并加载到内存后就一直占用内存与系统的资源。

    最大的优点:因为是一直存在内存内持续的提供服务,因此对于发生客户端的请求时,shand alone的daemon响应速度较快

    常见的stand alone daemon有WWW的daemon(httpd)、**FTP的daemon(vsftpd)**等。

  2. super_daemon:一个特殊的daemon来统一管理

    这一种服务的启动方式则是通过一个统一的daemon类负责唤醒服务。这个特殊的daemon称为super deamonCenots6中的super deamon是xinetd

    特点是:当没有用户请求时,各项服务都是未启动状态,等到有来自客户端的请求时,super daemon才唤醒相对应的服务,当客户端的请求结束后,被唤醒的这个服务也会关闭并释放系统资源。

    优点:1、由于super daemon负责唤醒各项服务,因此super daemon可以具有安全控制的机制,就是类似网络防火墙的功能;2、不会一直占用系统资源。

    缺点:相应速度较慢

    例如:telnet

deamon的命名规则:通常在服务的名称后加上一个d。

服务与端口的对应:/etc/services


1.2、daemon的启动脚本与启动方式

1、启动脚本和重要的配置文件
  1. /etc/init.d/*

    系统上几乎所有的服务启动脚本都放置在这里

  2. /etc/sysconfig/*

    几乎所有的服务都会将初始化的一些参数设置写入到这个目录下。

    举例来说,网络的设置就写在**/etc/sysconfig/network**这个文件。

  3. /etc/xinetd.conf/etc/xinetd.d/*:super daemon配置文件

    super daemon的主要配置文件为/etc/xinetd.conf

    super daemon只是一个统一管理的机制,它管理的其他daemon的设置则写在/etc/xinetd.d/*里边

  4. /etc/*:各服务各自的配置文件

  5. /var/lib/*:各服务产生的数据库

    举例来说,MySql的数据库默认就是写入/var/lib/mysql/这个目录下的

  6. /var/run/*:各服务的程序的PID记录处

*2、stand alone的/etc/init.d/启动

几乎所有服务的启动脚本都在/etc/init.d/目录下,这里的脚本会去检测环境、查找配置文件、加载distribution提供的函数功能、判断环境是否可以运行此daemon等。

#什么参数也不加的时候,系统会告诉你可以用的参数有哪些
/etc/init.d/syslog 	{start|stop|status|restart|condrestart}

Centos提供了另外一个可以启动stand alone服务的脚本,那就是service这个进程。其实service是一个script,它可以分析你执行的service后面的参数,然后根据你的参数去/etc/init.d去取得正确地服务来start或stop。

service [service name] (start|stop|restart|...)
service --status-all
3、super daemon的启动方式

super daemon本身也是一个stand deamon的服务,自己的启动方式与stand deamon方式一样。但它所管理的deamon必须要在配置文件中设置为启动该daemon才行。配置文件就是/etc/xinetd.d/*的所有文件。


2、系统开启的服务

2.1、查看系统开启的服务

一般使用netstat来查看网络监听的服务

ps查看整个系统的服务

2.2、设置开机自启服务的方法

chkconfig:管理系统服务默认开机启动与否

chkconfig --list
chkconfig [--level [123456]] [服务名称] [on|off]

Centos7

1、systemd服务

1.1、systemd的配置文件放置目录

基本上,systemd将过去所谓的daemon执行脚本通通称为一个服务单位(unit),而每种服务单位依据功能来区分时,就分类为不同的类型(type)。基本的类型有包括系统服务数据监听与交换的插槽档服务(socket)存储系统状态的快照类型、**提供不同类似执行等级分类的操作环境(target)**等等。

/usr/lib/systemd/system/	#每个服务最主要的启动脚本设定,有点类似于以前的/etc/init.d底下的文件;
/run/systemd/system/		#系统执行过程中所产生的服务脚本,这些脚本优先级要比/usr/lib/systemd/system/高;
/etc/systemd/system/		#管理员依据主机系统的需求所建立的执行脚本,其实这个目录优点类似于以前的/etc/rc.d/rc5.d/Sxx,							 执行优先级比/run/systemd/system/高!

到底系统开机会不会执行某些服务其实是看**/etc/systemd/system/底下的设定,所以该目录底下就是一大堆链接档**。而实际执行的systemd启动脚本配置文件,都是在/usr/lib/systemd/system/底下。/etc/systemd/system/仅仅是链接到正确地执行脚本配置文件而已。


1.2、systemd的unit类型分类说明

如何区分服务单元的类型?看扩展名。常见的服务类型如下:

扩展名主要服务功能
.service一般服务类型:主要是系统服务,包括服务器本身所需要的本地服务以及网络服务都是!
.socket内部程序数据交换的插槽服务
.target执行环境类型:其实就是一群unit的集合
.mount
.automount
文件系统挂载相关服务
.path侦测特定文件或目录类型
.timer循环执行的服务

1.3、通过systemctl管理服务

1.3.1、通过systemctl管理单一服务(service unit)的启动/开机启动与观察状态
systemctl [command] [unit]
command主要有:
	start			:立刻启动后面的unit
	stop			:立刻关闭后面的unit
	restart			:立刻关闭后启动后面的unit
	reload			:不关闭后面的unit的情况下,重载配置文件,让设定生效
	enable			:开机自启
	disable			:取消开机自启
	status			:显示unit的状态
	is-active		:目前有没有正在运行
	is-enable		:开机时有没有预设要启动unit

systemctl status unit显示的服务的几个常见状态:

状态说明
active(running)正有一只或多只程序在执行
active(exited)仅执行一次就正常结束的服务,目前并没有任何程序在系统中执行
active(waiting)正在执行当中,不过还需要等待其他的事件才能继续执行
inactive目前这个服务没有运行

daemon的预设状态:

状态说明
enabled开机时被执行
disabled开机时不执行
static不可以自己启动
mask无法被启动!因为被强制注销了(并非删除),可通过systemctl unmask解除
1.3.2、通过systemctl观察系统上所有的服务
systemctl [command] [--type=TYPE] [--all]
command:
	list-units			:依据unit列出目前启动的unit。若加上--all才会列出没启动的
	list-unit-files		:依据/usr/lib/systemd/system内的文件,将所有文件列表说明
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值