[LN_16] Linux服务管理(服务分类&运行级别|启动&自启动|服务&端口|rpm包服务|源码包服务|服务优化)

目录结构

一、运行级别&服务分类
    1. 系统运行级别
        1)运行级别命令
        2)系统默认运行级别
    2. 服务的分类
        1)Linux服务分类
        2)查询已安装的服务
    3. 启动与自启动
    4. 查询已安装的服务
        1)查看已安装的服务
        2)rpm安装服务 VS 源码包安装服务
    5. 服务与端口
        1)查看系统中运行的服务
        2)端口与服务对应
        3)查询系统中开启的服务
二、RPM包-服务管理
    1. 独立的服务管理
        1)rpm包的默认安装位置
        2)独立服务的启动
        3)独立服务的自启动
    2. 基于xinetd服务的管理
        1)rsync服务
        2)xinetd服务的启动
        3)xinetd服务的自启动
三、源码包-服务管理
    1. 源码包安装服务的启动
    2. 源码包服务的自启动
    3. 配置源码包服务能被服务管理命令所识别
四、Linux中常见的服务-开启/关闭建议(服务优化)


一、运行级别&服务分类

1. 系统运行级别

运行级别 含义
0 关机
1 单用户模式,主要用于系统修复。
作用:启动最小程序
2 不完全的命令模式,不包含NFS服务
(NFS:Linux与Windows共享文件的服务)
3 完全的命令模式,即标准字符界面
4 系统保留(暂未实现)
5 图形模式(图形界面)
6 重启动

PS:
① 通过init 0、init 6命令进行关机/重启的效果并不可靠,因其可能不能完全关闭某些服务的进程,建议还是使用如shutdown来代替,实现平稳关闭服务进程再关闭系统or重启系统
② 若从级别3修改到级别5,则前提是需要安装有支持图形界面的包文件
③ 完全命令模式,与图形模式相比,占用的资源更少,相对来说就可能发挥出更好的性能

1)运行级别命令
# 查看运行级别的命令
runlevel
# 修改运行级别命令
init 运行级别

最左边的数字:表示上一个运行级别。"N"即None,意味着一开机就进入当前级别,并没有通过上一个级别转变到当前级别
最右边的数字:表示当前运行级别。"5"为图形界面级别

2)系统默认运行级别
# 系统开机后直接进入的运行级别-配置永久生效
vim /etc/inittab
# 配置:
id:3:initdefault:
[LN_16] Linux服务管理(服务分类&运行级别|启动&自启动|服务&端口|rpm包服务|源码包服务|服务优化)_第1张图片

PS:以上根据 /etc/inittab配置文件的建议,不建议将默认运行级别设置为0或6,否则开机就重启or开机就关闭,始终开启不了Linux主机(可通过其他方式修复)

2. 服务的分类

1)Linux服务分类

Linux的服务分类:
(1)rpm包默认安装的服务:①独立的服务;②基于xinetd服务
(2)源码包安装的服务

[LN_16] Linux服务管理(服务分类&运行级别|启动&自启动|服务&端口|rpm包服务|源码包服务|服务优化)_第2张图片
  • 独立服务:独立运行在内存,有任何客户端想要访问服务,服务都可以快速响应,但是这些所有的服务都需要占用内存
  • xinetd服务:超级守护进程,管理后台程序。工作过程:用户首先访问xinetd服务,再由xinetd服务访问后台程序;后台程序再把响应返回给xinetd服务,然后xinetd服务将响应返回给用户。特点:响应相对较慢,但是除了xinetd本身占用内存,其他部分并不占用内存
2)查询已安装的服务
# 查看服务自启动状态,可看到所有rpm包安装的服务
chkconfig --list
# 源码包安装的服务;服务安装位置:一般为 /usr/local/之下

查看rpm包安装的不同服务,在不同的运行级别下的开机默认状态(开启or关闭)

[LN_16] Linux服务管理(服务分类&运行级别|启动&自启动|服务&端口|rpm包服务|源码包服务|服务优化)_第3张图片

因CentOS6及以上系统默认没有安装xinetd服务,可利用yum安装xinetd服务:yum -y install xinetd
安装完成后,再次执行chkconfig --list命令即可查看到xinetd服务项,如下:

[LN_16] Linux服务管理(服务分类&运行级别|启动&自启动|服务&端口|rpm包服务|源码包服务|服务优化)_第4张图片

3. 启动与自启动

服务启动:在当前系统中让服务运行,并提供功能
服务自启动:让服务在系统开机or重启之后,随着系统的启动而自动启动服务
PS:
通过命令chkconfig --list查看到的是服务自启动的状态,不能以此来判断服务在当前的启动状态

4. 查询已安装的服务

1)查看已安装的服务
# 查看服务自启动状态,可看到所有rpm包安装的服务
chkconfig --list
# 源码包安装的服务;服务安装位置:一般为 /usr/local/之下
2)rpm安装服务 VS 源码包安装服务

区别:安装位置的不同,导致启动方式or管理方式不同
源码包安装在指定位置(非必须),一般为 /usr/local/。rpm包则安装在默认位置中

5. 服务与端口

1)查看系统中运行的服务

方式1:通过命令ps aux查看系统中运行的服务对应的进程,以及某些程序占用的进程
方式2:查看系统中开启的端口号,从而判断当前系统中开启的服务

端口:数据从底层经过传输层向应用层传递服务的接口

[LN_16] Linux服务管理(服务分类&运行级别|启动&自启动|服务&端口|rpm包服务|源码包服务|服务优化)_第5张图片
2)端口与服务对应

查询系统中的服务项,及其对应的端口号:vim /etc/services

[LN_16] Linux服务管理(服务分类&运行级别|启动&自启动|服务&端口|rpm包服务|源码包服务|服务优化)_第6张图片
3)查询系统中开启的服务
# 列出系统中所有已启动的服务(端口)
netstat -tunlp
# 列出系统中所有已启动服务(包括已连接的服务)
netstat -an
选项:
-t  列出tcp数据
-u  列出udp数据
-l  列出正在监听的网络服务(不包括已连接的网络服务)
-n  用端口号来显示服务,而不是用服务名
-p  列出该服务的进程ID(PID)
-a  所有选项
[LN_16] Linux服务管理(服务分类&运行级别|启动&自启动|服务&端口|rpm包服务|源码包服务|服务优化)_第7张图片
[LN_16] Linux服务管理(服务分类&运行级别|启动&自启动|服务&端口|rpm包服务|源码包服务|服务优化)_第8张图片

PS:
① 若队列编号≠0,则表示该服务比较繁忙(在排队ing)
② 因tcp会有3次握手的过程,故需要监听(LISTEN),而udp则不需要监听
③ 通过查看系统已启动的端口,以此判断已启动的服务
④ 命令chkconfig --list查看自启动服务,命令netstat -tunlp查看启动的服务

二、RPM包-服务管理

1. 独立的服务管理

1)rpm包的默认安装位置

安装位置的不同,导致启动方式or管理方式不同。源码包安装在指定位置(非必须),一般为 /usr/local/。rpm包则安装在默认位置中,如下:

类型 默认安装路径
启动脚本位置 /etc/init.d
初始化环境配置文件位置 /etc/sysconfig/
配置文件位置 /etc/
xinetd配置文件 /etc/xinetd.conf
基于xinetd服务的启动脚本 /etc/xinetd.d/
服务产生的数据 /var/lib/
日志 /var/log/
2)独立服务的启动
# 启动方式1
/etc/init.d/独立服务名 start|stop|status|restart
# 启动方式2
service 独立服务名 start|stop|status|restart
[LN_16] Linux服务管理(服务分类&运行级别|启动&自启动|服务&端口|rpm包服务|源码包服务|服务优化)_第9张图片

以上,对于启动方式1,还可以写作/etc/rc.d/init.d/独立服务名 start...,因/etc/init.d和/etc/rc.d/init.d建立了软链接关系,两者中的任一都可操作其下的服务

3)独立服务的自启动

独立服务的自启动修改方式:
方式1:

# 查看rpm安装包的自启动服务
chkconfig [--level 运行级别] [独立服务名] [on|off]

方式2:修改 /etc/rc.d/rc.local文件
方式3:使用 ntsyssv命令(图形界面)管理自启动

对于phpstudy服务,如:
查询phpstudy服务的自启动状态:chkconfig --list | grep "phpstudy"
将所有运行级别自启动状态设置为off:chkconfig phpstudy off
将2345运行级别自启动状态设置为on:chkconfig --level 2345 phpstudy on

[LN_16] Linux服务管理(服务分类&运行级别|启动&自启动|服务&端口|rpm包服务|源码包服务|服务优化)_第10张图片

2. 基于xinetd服务的管理

1)rsync服务

rsync是xinetd服务中一项常规服务,主要用于Linux之间进行数据同步、备份。以上通过yum命令(yum -y install xinetd)安装过xinetd服务,
查看独立服务的自启动:chkconfig --list

[LN_16] Linux服务管理(服务分类&运行级别|启动&自启动|服务&端口|rpm包服务|源码包服务|服务优化)_第11张图片

rsync服务配置文件保存路径:/etc/xinetd.d/rsync

查询rsync服务对应的端口:grep "rsync" /etc/services
查询出rsync占用873端口,如下:

2)xinetd服务的启动

配置启动rsync服务:vim /etc/xinetd.d/rsync
设置:disable = no

# default: off
# description: The rsync server is a good addition to an ftp server, as it \
#   allows crc checksumming etc.
service rsync   # 服务名称
{
    disable = no    # 服务不启动(yes/no)
    flags       = IPv6  # 服务是 IPv6上的服务
    socket_type     = stream    # 使用TCP协议数据包
    wait            = no    # 允许多个连接同时连接
    user            = root  # 启动服务的用户为root
    server          = /usr/bin/rsync    # 服务的启动程序
    server_args     = --daemon  # 脱离xinetd托管模式,直接以daemon形式启动 rsync服务
    log_on_failure  += USERID   # 登录失败后记录用户的ID
}

rsync启动命令(rsync由xinetd所管理):service xinetd restart

查看xinetd服务中的rsync服务是否开启(873端口):netstat -tunlp

[LN_16] Linux服务管理(服务分类&运行级别|启动&自启动|服务&端口|rpm包服务|源码包服务|服务优化)_第12张图片
3)xinetd服务的自启动
# 停止当前rsync服务,且将开机自启动状态设置为关闭
chkconfig rsync off
# 当前开启rsync服务,且将开机自启动状态设置为开启
chkconfig rsync on

PS:
① rsync是基于xinetd的服务,非独立服务,不能添加运行级别
② 独立服务的启动、自启动是独立控制的,有严格区分
③ 基于xinetd的服务,启动和自启动是同步控制的,没有独立区分,导致xinetd服务的应用相对较少

三、源码包-服务管理

对于源码包,安装目录默认没有放置在/etc/rc.d/init.d/etc/init.d之下,故默认不能对其使用默认管理rpm包的命令(如:service、chkconfig、ntsysv等服务管理命令),此时操作源码包的服务时需要使用绝对命令定位到服务项

1. 源码包安装服务的启动

使用绝对路径(根据具体安装位置而定),调用启动脚本来启动。不同的源码包的启动脚本不同,可从源码包的安装说明中查看启动脚本的方法
如:/usr/local/apache2/bin/apachectl start|stop

2. 源码包服务的自启动

vim /etc/rc.d/rc.local 或 vim /etc/rc.local
加入以上启动命令(/usr/local/apache2/bin/apachectl start|stop)

3. 配置源码包服务能被服务管理命令所识别

让源码包的apache服务能被service命令进行管理启动:
(1)service命令搜索的是/etc/init.d/或/etc/rc.d/init.d/目录,将源码包的apache启动脚本,通过软链接的方式链接到对应的目录(/etc/rc.d/init.d/):
ln -s /usr/local/apache2/bin/apachectl /etc/rc.d/init.d/
(2)service命令管理apache启动脚本启动apache服务:service apachectl start

四、Linux中常见的服务-开启/关闭建议(服务优化)

服务器维护建议:

1. 重启维护:长时间未重启,可能堆积较多的系统垃圾,使用趋于卡顿,通过避开用户使用的高峰期的某个时段进行重启清除系统垃圾。建议:①高负载服务器(视频、游戏、下载等),1周重启1次;②低负载服务器(常规内容网站),1个月重启1次
2. 减少非必须程序的资源占用:若非必要,可不安装图形界面程序包,而直接使用命令模式的操作环境
3. 关闭非必须服务:服务管理中的服务器优化,其中一项基本的工作是关闭不必要的服务,减少资源的占用,降低被攻击的可能性
......

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 协议的 chargenserver。主要功能是提供类似远程打字的功能 关闭
chargen-stream 同上 关闭
cpuspeed 可以用来调整 CPU 的频率。当闲置时可以自动降低 CPU 频率来节省电量 开启
crond 系统的定时任务,一般的 Linux 服务器都需要定时任务帮助系统维护。建议开启 开启
cvs 一个版本控制系统 关闭
daytime-dgram daytime 使用 TCP 协议的 Daytime 守护进程,该协议为客户机实现从远程服务器获取日期和时间的功能 关闭
daytime-stream 同上 关闭
dovecot 邮件服务中 POP3/IMAP 服务的守护进程。主要用来接收信件,若启动了邮件服务则开启,否则关闭 关闭
echo-dgram 服务器回显客户服务的进程 关闭
echo-stream 同上 关闭
firstboot 系统安装完成之后,有个欢迎界面,需要对系统进程初始设定。就是这个进程的作用。既然不是第一次启动了,关闭吧 关闭
gpm 在字符终端(tty1-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 的在线升级服务 关闭

你可能感兴趣的:([LN_16] Linux服务管理(服务分类&运行级别|启动&自启动|服务&端口|rpm包服务|源码包服务|服务优化))