服务的分类

Linux 中的服务按照安装方法不同可以分为 RPM 包默认安装的服务和源码包安装的服务两大类。其中,RPM 包默认安装的服务又因为启动与自启动管理方法不同分为独立的服务和基于 xinetd 的服务。服务分类的关系图如图 1 所示。


图 1 服务分类的关系图
在Linux 中常见的软件包有两种:RPM包和源码包。通过 RPM包安装的系统服务就是 RPM 包默认安装的服务(因为 Linux 光盘中全是 RPM 包,Linux 系统也是通过 RPM 包安装的,所以我们把 RPM 包又叫作系统默认包),通过源码包安装的系统服务就是源码包安装的服务。

RPM包和源码包最主要的区别是安装位置不同,RPM 包安装到系统默认位置当中(可以通过"rpm -ql 包名"命令查询),可以被服务管理命令识别(如 service、chkconfig);源码包安装到手工指定位置(一般会安装到 /usr/local/ 目录中),不能被服务管理命令识别(可以手工修改为被服务管理命令识别)。

通过 RPM 包安装的服务又可以分为两种:

  • 独立的服务:这种服务可以自行启动,而不用依赖其他的管理服务。因为不依赖其他的管理服务,所以,当客户端请求访问时,独立的服务响应请求更快速。目前,Linux 中的大多数服务都是独立的服务,如 apache 服务、FTP 服务、Samba 服务等。
  • 基于 xinetd 的服务:这种服务不能独立启动,而要依靠管理服务来调用。这个负责管理的服务就是 xinetd 服务。xinetd 服务是系统的超级守护进程,其作用就是管理不能独立启动的服务。当有客户端请求时,先请求 xinetd 服务,由 xinetd 服务去唤醒相对应的服务。当客户端请求结束后,被唤醒的服务会关闭并释放资源。这样做的好处是只需要持续启动 xinetd 服务,而其他基于 xinetd 的服务只有在需要时才被启动,不会占用过多的服务器资源。但是这种服务由于在有客户端请求时才会被唤醒,所以响应时间相对较长。

管理系统服务的命令

管理服务的命令格式

- CentOS6 CentOS7
启动 service 服务名称 start systemctl start name.service
停止 service 服务名称 stop systemctl stop name.service
重启 service 服务名称 restart systemctl restart name.service
状态 service 服务名称 status systemctl status name.service
重载或重启服务(先加载,再启动)              -- systemctl reload-or-restart name.service

chkconfig命令的对应关系

- CentOS6 CentOS7
设定某个服务开机自启 chkconfig 服务名称 on systemctl enable name.service
设定某个服务开机禁止启动 chkconfig 服务名称 off systemctl disable name.service
查看所有服务开机自启状态 chkconfig  --list systemctl list-unit-files --type service
查看某个服务在哪些运行级别下的启动和禁用 chkconfig 服务名称 --list ls   /etc/systemd/system/*.wants/服务名称.service
查看服务是否开启自启              -- systemctl is-enable name.service

服务状态

使用下面命令可以显示服务及服务对用的状态

[root@localhost ~]# systemctl list-unit-files
UNIT FILE STATE
network.target static
sshd.service enabled
.......省略部分输出............

服务对应的状态

  • loaded:Unit配置文件已处理
  • active(running):一次或持续处理的运行
  • active(exited):成功完成一次性的配置
  • active(waitong):运行中,等待一个事件
  • inactive:不运行
  • enabled:开启启动
  • disabled:开机不启动
  • static:开启不启动,但可以被另一个启动的服务激活

查看基于 xinetd 的服务

因为系统中默认没有安装 xinetd 这个超级守护进程,需要手工安装。安装命令如下:

[root@localhost ~]# rpm -ivh /mnt/cdrom/Packages/ xinetd-2.3.14-34.el6.i686.rpm
Preparing...
###############
[100%]
1:xinetd
###############
[100%]

在 Linux 中基于 xinetd 的服务越来越少,原先很多基于 xinetd 的服务在新版本的 Linux 中已经变成了独立的服务。安装完 xinetd 超级守护进程之后,我们再查看一下,命令如下:

[root@localhost ~]# systemctl list-unit-files |grep xinetd

基于 xinetd 的服务没有自己的运行级别,因为它们不是独立的服务,到底在哪个运行级别可以自启动,则要看 xinetd 服务是在哪个运行级别自启动的。

Linux常见服务类别及功能

在Linux系统中,服务启动得越多,占用的系统资源就越多。常见的服务如下:

服务名称 功能简介 建议
acpid 电源管理接口。如果是笔记本电脑用户,则建议开启,可以监听内核层的相关电源事件 开启
anacron 系统的定时任务程序。是 cron 的一个子系统,如果定时任务错过了执行时间,则可以通过 anacron 继续唤醒执行 关闭
alsasound alsa 声卡驱动。如果使用 alsa 声卡,则开启 关闭
apmd 电源管理模块。如果支持 acpid,就不需要 apmd,可以关闭 关闭
atd 指定系统在特定时间执行某个任务,只能执行一次。如果需要则开启,但我们一般使用 crond 来执行循环定时任务 关闭
auditd

审核子系统。如果开启了此服务,那么SELinux的审核信息会写入 /var/log/audit/ audit.log 文件;

如果不开启,那么审核信息会记录在syslog中

开启
autofs 让服务器可以自动挂载网络中其他服务器的共享数据,一般用来自动挂载 NFS 服务。如果没有 NFS 服务,则建议关闭 关闭
avahi-daemon

avahi 是 zeroconf 协议的实现,它可以在没有 DNS 服务的局域网里发现基于 zeroconf 协议的设备和服务。

除非有兼容设备或使用 zeroconf 协议,否则关闭

关闭
bluetooth 蓝牙设备支持。一般不会在服务器上启用蓝牙设备,关闭它 关闭
capi 仅对使用 ISND 设备的用户有用 关闭
chargen-dgram 使用 UDP 协议的 chargen server。其主要提供类似远程打字的功能 关闭
chargen-stream 同上 关闭
cpuspeed 可以用来调整 CPU 的频率。当闲置时,可以自动降低 CPU 频率来节省电量 开启
crond 系统的定时任务,一般的 Linux 服务器都需要定时任务来协助系统维护。建议开启 开启
cvs 一个版本控制系统 关闭
daytime-dgram 使用 TCP 协议的 daytime 守护进程,该协议为客户机实现从远程服务器获取日期和时间的功能 关闭
daytime-slream 同上 关闭
dovecot 邮件服务中 POP3/IMAP 服务的守护进程,主要用来接收信件。如果启动了邮件服务则开启:否则关闭 关闭
echo-dgram 服务器回显客户服务的进程 关闭
echo-stream 同上 关闭
firstboot

系统安装完成后,有一个欢迎界面,需要对系统进行初始设定,这就是这个服务的作用。

既然不是第一次启动了,则建议关闭

关闭
gpm 在字符终端 (ttyl~tty6) 中可以使用鼠标复制和粘贴,这就是这个服务的功能 开启
haldaemon 检测和支持 USB 设备。如果是服务器则可以关闭,个人机则建议开启 关闭
hidd 蓝牙鼠标、键盘等蓝牙设备检测。必须启动 bluetooth 服务 关闭
hplip HP 打印机支持,如果没有 HP 打印机则关闭 关闭
httpd apache 服务的守护进程。如果需要启动 apache,就开启 开启
ip6tables IPv6 的防火墙。目前 IPv6 协议并没有使用,可以关闭 关闭
iptables 防火墙功能。Linux 中的防火墙是内核支持功能。这是服务器的主要防护手段,必须开启 开启
irda IrDA 提供红外线设备(笔记本电脑、PDA’s、手机、计算器等)间的通信支持。建议关闭 关闭
irqbalance 支持多核处理器,让 CPU 可以自动分配系统中断(IRQ),提高系统性能。目前服务器多是多核 CPU,请开启 开启
isdn 使用 ISDN 设备连接网络。目前主流的联网方式是光纤接入和 ADSL,ISDN 己经非常少见,请关闭 关闭
kudzu 该服务可以在开机时进行硬件检测,并会调用相关的设置软件。建议关闭,仅在需要时开启 关闭
lvm2-monitor 该服务可以让系统支持LVM逻辑卷组,如果分区采用的是LVM方式,那么应该开启。建议开启 开启
mcstrans SELinux 的支持服务。建议开启 开启
mdmonitor 该服务用来监测 Software RAID 或 LVM 的信息。不是必需服务,建议关闭 关闭
mdmpd 该服务用来监测 Multi-Path 设备。不是必需服务,建议关闭 关闭
messagebus 这是 Linux 的 IPC (Interprocess Communication,进程间通信)服务,用来在各个软件中交换信息。建议关闭 关闭
microcode _ctl Intel 系列的 CPU 可以通过这个服务支持额外的微指令集。建议关闭 关闭
mysqld MySQL 数据库服务器。如果需要就开启;否则关闭 开启
named DNS 服务的守护进程,用来进行域名解析。如果是 DNS 服务器则开启;否则关闭 关闭
netfs 该服务用于在系统启动时自动挂载网络中的共享文件空间,比如 NFS、Samba 等。 需要就开启,否则关闭 关闭
network 提供网络设罝功能。通过这个服务来管理网络,建议开启 开启
nfs NFS (Network File System) 服务,Linux 与 Linux 之间的文件共享服务。需要就开启,否则关闭 关闭
nfslock

在Linux中如果使用了NFS服务,那么,为了避免同一个文件被不同的用户同时编辑,所以有这个锁服务。

有NFS时开启,否则关闭

关闭
ntpd 该服务可以通过互联网自动更新系统时间.使系统时间永远准确。需要则开启,但不是必需服务 关闭
pcscd 智能卡检测服务,可以关闭 关闭
portmap 用在远程过程调用 (RPC) 的服务,如果没有任何 RPC 服务,则可以关闭。主要是 NFS 和 NIS 服务需要 关闭
psacct 该守护进程支持几个监控进程活动的工具 关闭
rdisc 客户端 ICMP 路由协议 关闭
readahead_early 在系统开启的时候,先将某些进程加载入内存整理,可以加快启动速度 关闭
readahead_later 同上 关闭
restorecond 用于给 SELinux 监测和重新加载正确的文件上下文。如果开启 SELinux,则需要开启 关闭
rpcgssd 与 NFS 有关的客户端功能。如果没有 NFS 就关闭 关闭
rpcidmapd 同上 关闭
rsync 远程数据备份守护进程 关闭
sendmail sendmail 邮件服务的守护进程。如果有邮件服务就开启;否则关闭 关闭
setroubleshoot 该服务用于将 SELinux 相关信息记录在日志 /var/log/messages 中。建议开启 开启
smartd 该服务用于自动检测硬盘状态。建议开启 开启
smb 网络服务 samba 的守护进程。可以让 Linux 和 Windows 之间共享数据。如果需要则开启 关闭
squid 代理服务的守护进程。如果需要则开启:否则关闭 关闭
sshd ssh 加密远程登录管理的服务。服务器的远程管理必须使用此服务,不要关闭 开启
syslog 日志的守护进程 开启
vsftpd vsftp 服务的守护进程。如果需要 FTP 服务则开启;否则关闭 关闭
xfs 这是 X Window 的字体守护进程,为图形界面提供字体服务。如果不启动图形界面,就不用开启 关闭
xinetd 超级守护进程。如果有依赖 xinetd 的服务,就必须开启 开启
ypbind 为 NIS (网络信息系统)客户机激活 ypbind 服务进程 关闭
yum-updatesd yum 的在线升级服务 关闭

Linux系统服务管理 系统服务的更多相关文章

  1. linux日常管理-系统服务

    开机不启动不必要系统服务,节省硬件资源,解决安全隐患 调整服务有两种办法 没有这个命令就安装一下.执行这个命令,出现下面界面 按空格键选择或取消,tab切换选择确定或取消 系统服务留下 crond i ...

  2. linux中注册系统服务—service命令的原理通俗

    能够使用service命令进行操作的,就是已经注册成为linux的系统服务了.window中也可以注册成为系统服务的办法. service命令用的次数真不少,就是比较多的关联点,用了很多次了,还是有些 ...

  3. centos系统服务管理

    系统服务管理工具: chkconfig(所有linux发行版都有),用法很简单,如下: usage:   chkconfig --list [name]          chkconfig --ad ...

  4. Atitit.跨语言系统服务管理器api兼容设计

    Atitit.跨语言系统服务管理器api兼容设计 1. Common api,兼容sc ,service control??1 1.1. 服务创建,use sc1 1.2. 服务delete ,use ...

  5. 如何使用Systemctl管理系统服务和单元?

    chu原文:How To Use Systemctl to Manage Systemd Services and Units 简书:如何使用Systemctl管理系统服务和单元? 引言 System ...

  6. sc.exe管理系统服务

    sc.exe管理系统服务 下面介绍SC,SC QC,and SC QUERY sc.exe create HomerSatelliteDesktopGC binPath= "D:XXXXXX ...

  7. centos7系统服务管理

    systemd是RH7系列操作系统开始启用新的系统和服务管理器.它被设计为与sysv init脚本向后兼容,并提供了一些功能,例如在引导时并行启动系统服务,按需激活守护程序或基于依赖关系的服务控制逻辑 ...

  8. systemctl -- 系统服务管理器 【转】

    systemctl  -- 系统服务管理器 systemctl 是系统服务管理器命令,它实际上将 service 和 chkconfig 这两个命令组合到一起. 直接运行命令可以列出所有正在运行的服务 ...

  9. Atitit.木马病毒的操作注册表原理 系统服务管理器 atiSysService

    Atitit.木马病毒的操作注册表原理 系统服务管理器 atiSysService 1. atiSysService1 2. atiSysService  原理1 3. Java code1 4. 参 ...

随机推荐

  1. 多线程之使用读写锁ReentrantReadWriteLock实现缓存系统

    简单地缓存系统:当有线程来取数据时.假设该数据存在我的内存中.我就返回数据.假设不存在我的缓存系统中,那么就去查数据库.返回数据的同一时候保存在我的缓存中. 当中涉及到读写问题:当多个线程运行读操作时 ...

  2. (转)java Exception层次结构详解

    转自:http://www.importnew.com/14688.html 1. JAVA异常层次结构 异常指不期而至的各种状况,如:文件找不到.网络连接失败.非法参数等.异常是一个事件,它发生在程 ...

  3. java调用oracle函数

    /** * 调用函数取得数据表的ID值 * @param tableName 表名 * @return * @throws SQLException */ public String callFun( ...

  4. VC++ Debug格式化数值显示

    When you watch variables in the Watch or Quick Watch window, the values are displayed using the defa ...

  5. js的实例方法和静态方法分析

    var Person=function(){}; Person.say=function(){ console.log('I am a Person,I can say.') }; Person.pr ...

  6. python uwsgi 部署以及优化

    这篇文章其实两个月之前就应该面世了,但是最近琐事.烦心事太多就一直懒得动笔,拖到现在才写 一.uwsgi.wsgi.fastcgi区别和联系 参见之前的文章 http://www.cnblogs.co ...

  7. @RequestParam 注解

    @RequestParam 注解org.springframework.web.bind.annotation.RequestParam注解类型用于将指定的请求参数赋给方法中的形参.使用@Reques ...

  8. 【微信】QQ邮箱助手不提醒解决

    1.问题及原因: 微信上的QQ邮箱提醒功能失效了,收到信后不提醒.忘了是使用了TIM,还是使用了QQ邮箱之后才出现的. 不过原因是:QQ邮箱提醒被设置为仅在QQ邮箱客户端提醒 2.解决: 重新安装QQ ...

  9. CodeForces 670C Cinema(排序,离散化)

    C. Cinema time limit per test 2 seconds memory limit per test 256 megabytes input standard input out ...

  10. python3连接外部Mysql

    前提条件,已经安装过MySQL(比如说以前web开发安装过MySQL) 1.安装PyMySQL pip install PyMySQL 2.测试 import pymysql as ps db = p ...