Linux服务管理

简介与分类

系统的运行级别

运行级别 含义
0 关机
1 单用户模式,可以想象为windows的安全模式,主要用于系统修复
2 不完全的命令行模式,不含NFS服务
3 完全的命令行模式,就是标准字符界面
4 系统保留
5 图形模式
6 重启动

注:
单用户模式:启动最小的服务,多余服务不开启,仅保证系统自己可以正常运行。主要用于系统修复。
NFS:Linux和Linux之间进行文件共享服务

查看及修改系统运行级别

// 查看系统运行级别
// N:NULL。当前级别为3即字符界面,其上一个级别为N即为空,表示系统开机直接进入字符界面
#runlevel
N 3             


// 修改系统运行级别
// 进入图形级别,前提是安装图形界面
#init 5 // 若未安装图形界面则会报错
#runlevel
3 5     // 仍然进入了5级别

// 不建议使用下面命令关机和重启,不一定正确结束系统正在运行的服务;建议使用shutdown命令
// 关机
#init 0
// 重启
#init 6 

查看及修改系统默认的运行级别

// /etc/inittab文件现在没有那么重要,它的功能已经被其他配置文件所代替
#vim /etc/inittab
id:3:initdefault:

注:不要把开机启动级别设置为0或6级别。

服务的分类

RPM包与源码包的区别:主要在安装位置不一样。

RPM包安装在系统默认位置,一般不指定安装位置,安装包作者决定安装的位置。
源码包手工指定安装位置,一般装在/usr/local/目录下。

独立的服务和基于xinetd服务的区别:

独立的服务:服务独立的运行在内存中,服务响应速度快,但占用更多内存。
基于xinetd服务: xinetd服务是超级守护进程的一种。xinetd服务本身独立存在,管理一些服务。用户通过xinetd服务请求其管理的一些服务,然后xinetd返回请求服务的回复给用户,xinetd服务相当于proxy一样的角色。xinetd服务逐步被淘汰,大多数服务都是独立的服务。

//查看服务自启动服务
// 通过chkconfig查看的服务都是rpm包安装且都是独立的服务
#chkconfig --list
...
network 0:off 1:off 2:on 3:on 4:on 5:on 6:off //在不同系统运行级别时服务的自动开启状态即是否自启动
...

// 查看基于xinetd服务
// xinetd
#yum -y install xinetd
// 查看服务
#chkconfig --list // 会多一组显示基于inetd服务的服务

启动与自启动

服务启动:就是在当前系统中让服务运行,并提供功能。
服务自启动:自启动是指让五福在系统开机或重启动之后,随着系统的启动而自动启动服务。

注:在chkconfig –list 查看到服务在不同运行级别时,服务自启动是否开启,不能确定现在服务是否已经开启。

查询已安装的服务

RPM包安装的服务

chkconfig –list命令查看服务自启动状态,可以看到所有RPM包安装的服务

源码包安装的服务

查看服务安装位置,一般是/usr/local/目录下
service、chkconfig、ntsysv都不能找到源码包安装的服务。

RPM包安装服务和源码包安装服务的区别就是安装位置的不同

源码包一般安装在/usr/local/目录下
RPM包默认安装位置

服务与端口

查看系统中开启(已运行)服务

1 ps aux命令,显示所有执行的进程包括服务进程,但这并不好用
2 netstat -tlun 显示系统已运行(正在监听)的服务,其他功能可以man netstat 查看

端口与服务对应

查看/etc/services文件,显示常见的端口和服务

RPM包服务管理

常规rpm包文件安装位置:
- /etc/init.d/ :启动脚本位置
- /etc/sysconfig/ : 初始化环境配置文件位置
- /etc/ : 配置文件位置
- /etc/xinetd.conf : xinetd配置文件
- /etc/xinetd.d/ : 基于xinetd服务的启动脚本
- /var/lib/ : 服务产生的数据放在这里
- /var/log/ : 日志

独立服务的管理

独立服务的启动

1 /etc/init.d/独立服务名 start|stop|status|restart|

// 查看apache http服务的状态,其中httpd为一个shell脚本文件
#/etc/init.d/httpd status
// 启动apache服务
#/etc/init.d/httpd start

// 早期Linux版本服务管理脚本放在/etc/rc.d/init.d/目录
#/etc/rc.d/init.d/httpd status

2 service 独立服务名 start|stop|restart|status|

#service httpd status

注1:redhat系列的Linux才能使用service命令
注2:上面两种方法一般无法管理源码包启动脚本,但可以把源码包启动脚本放置在/etc/init.d/目录下统一管理

独立服务的自启动

1 chkconfig [–level 运行级别] [独立服务名] [on|off]

#chkconfig --list |grep httpd
httpd 0:off 1:off 2:off 3:off 4:off 5:off 6:off 
#chkconfig --level 2345 httpd on
#chkconfig --list |grep httpd
httpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off 

#chkconfig httpd off
#chkconfig --list|grep httpd
httpd 0:off 1:off 2:off 3:off 4:off 5:off 6:off 

2 修改/etc/rc.d/rc.local文件
/etc/rc.d/rc.local文件是在系统启动时,把所有的服务启动完,用户登录到系统前最后执行的文件,因此系统会执行这个文件中的命令。

#vim /etc/rc.d/rc.local
touch /var/lock/subsys/local
/etc/init.d/httpd start // 添加开机启动apache服务的命令

注1:通过修改/etc/rc.d/rc.local文件添加的开机启动服务不能在chkconfig –list中显示,这两种管理方式不想关,选取一种即可。
注2:也可以修改/etc/rc.local文件,/etc/rc.local文件是/etc/rc.d/rc.local文件的软连接

3 使用ntsysv命令管理自启动
ntsysv命令和chkconfig命令是相关的,即通过哪一个修改,对方都能看见修改。
注:ntsysv是redhat系列的Linux命令。

基于xinetd服务的管理

1 安装xinetd服务

#yum -y install xinetd

2 xinetd服务的启动

// 显示rsync服务的端口
#grep rsync /etc/services

#vim /etc/xinetd.d/rsync
service rsync
{
    flags = REUSE // 设置TCP/IP socket可重用
    socket_type = stream
    wait = no     // 允许多个连接同时连接
    user = root   // 启动服务的用户为root
    server = /usr/bin/rsync
    server_args = --daemon
    log_on_failure += USERID // 登录失败后,记录用户的ID
    disable = no // 开启rsync服务,开启:no 关闭:yes
}

// 重启动xinetd服务
#service xinetd restart

3 xinetd服务的自启动

只有独立的服务才有运行级别,基于xinetd的服务没有运行级别,xinetd在哪个级别可以自启动,rsync服务就在哪个级别可以自启动

// 不能加运行级别
#chkconfig rsync on 
#netstat -tlun|grep 873
tcp 0 0 :::873 :::* LISTEN
#chkconfig rsync off
// 查看rsync服务是否关闭,
#netstat -tlun|grep 873 // 无显示,rync服务被关闭 
#vim /etc/xinetd.d/rsync // 设置rsync服务的disable=no
#service xinetd restart
#netstat -tlun|grep 873
tcp 0 0 :::873 :::* LISTEN


// 使用图形化界面的ntsysv找到rsync服务开启即可
#ntsysv 

注:由上面操作可知 xinetd服务的启动和自启动是一致的,即自启动开启关闭服务和启动开启关闭是一样的。

源码包服务管理

源码包的安装目录中的安装说明文档中一般有启动命令教程。如apache服务器的安装说明为INSTALL。

源码包安装服务的启动

使用绝对路径,调用启动脚本来启动。不同的二元吗包的启动脚本不同。可以查看源码包的安装说明,查看启动脚本的方法。

// 源码包服务启动
#/usr/local/apache2/bin/apachectl start|stop
// 源码包中apache2服务首页的修改
#vim /usr/local/apache2/htdocs/index.html 

源码包服务的自启动

只能通过修改/etc/rc.d/rc.local文件加入启动命令

#vim /etc/rc.d/rc.local // 加入/usr/local/apache2/bin/apachectl start即可

让源码包服务被服务管理命令识别

让源码包的apache服务能被service命令管理启动

#ln -s /usr/local/apache2/bin/apachectl /etc/init.d/apache
#service apache start

让源码包的apache服务能被chkconfig与ntsysv命令管理自启动

#vim /etc/init.d/apache 
// 在apache启动脚本中添加
  #chkconfig: 35 86 76 // 格式:chkconfig : 运行级别 启动顺序 关闭顺序
  #description: source package apache
// 把源码包apache加入chkconfig 命令
#chkconfig --add apache
#chkconfig --list |grep apache
apache 0:关闭 1:关闭  2:关闭 3:开启 4:关闭 5:开启 6:关闭

// 这时,ntsysv命令也可以管理apache
#ntsysv 

注:

// 格式:chkconfig : 运行级别 启动顺序 关闭顺序
#chkconfig: 35 86 76
#cd /etc/rc3.d/ // 3代表系统纯字符界面
#ls
// 显示以k和s开头文件文件
// k开头的为kill,s开头的为start,
// 系统进入3级别的时要把以s开头的文件执行一遍,同理系统退出3级别时执行一遍k开头的文件
// 启动顺序号和关闭顺序号可以为随意数字,但启动顺序号不能与/etc/rc3.d/目录下已存在的s开头文件的顺序号重复,同理关闭顺序号也不能与k开头文件的顺序号重复

服务管理总结

xmind思维导图

Linux服务管理_第1张图片

常见的服务与管理

服务名称 功能简介 建议
acpid 电源管理接口。如果是笔记本用户建议开启,可以监听内核层的相关电源事件。 开启
anacron 系统的定时任务程序。cron的一个子系统,如果定时任务错过了执行时间,可以通过anacron继续唤醒执行 关闭
alsasound Alsa声卡驱动。如果使用alsa声卡,开启 关闭
apmd 电源管理模块。如果支持acpid,就不需要apmd,可以关闭 关闭
atd 指定系统在特定时间执行某个人物,只能执行一次。如果需要则开启,但一般使用crond来进行循环定时任务 关闭
auditd 审核子系统。如果开启了此服务,SELinux的审核信息会写入/var/log/audit/auxlit.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 daytime使用TCP协议的Daytime守护进程,该协议为客户机实现从远程服务器获取日期和时间的功能 关闭
dovecot 邮件服务中POP3/IMAP服务的守护进程。主要用来接收信件,如果启动了邮件服务则开启,否则关闭 关闭
echo-dgram 服务器回显客户服务的进程 关闭
echo-stream 同上 关闭
firstboot 系统安装完成之后,有个欢迎界面,需要对系统初始化设定,就是这个进程的作用。既然不是第一次启动,关闭 关闭
gpm 在字符终端(tty1-tty6)中可以使用鼠标复制和粘贴。就是该服务的功能 开启
haldaemon 检测盒支持USB设备。服务器可以关闭,个人建议开启 关闭
hidd 蓝牙鼠标、键盘灯蓝牙设备检测。必须启动bluetooth服务 关闭
hplip HP打印机支持,如果没有HP打印机关闭 关闭
httpd apache服务的守护进程。如果需要启动apache就开启 开启
ip6tables IPv6的防火墙,目前IPv6协议并没有使用,可以关闭 关闭
pitables 防火墙功能,Linux中防火墙是内核支持功能。这是服务器的主要防护手段,必须开启 开启
irda IrDA提供红外线设备间的通讯支持,关闭 关闭
irqbalance 支持多核持利器,让CPU可以自动分配系统中断(IRQ),提高系统性能。目前服务器是多核CPU,开启 开启
isdn 使用ISDN设备连接网络。目前主流的联网方式是光钎接入和ADSL,ISDN已经非常少见,关闭 关闭
kudzu 该服务可以在开机时进行硬件检测,炳辉调用相关的设置软件。建议关闭,需要时开启 关闭
lvn2-monitor 该服务可以让系统支持LVM逻辑卷组,如果分区采用的是LVM方式,那么应该开启,建议开启 开启
mcstrans SELinux的支持服务,建议开启 开启
mdmonitor 该服务用来监测Software RAID或LVM的信息,不是必须服务,建议关闭 关闭
mdmpd 该服务用来监测Multi-Path设备,不是必须服务 关闭
messagebus 这是Linux的IPC(Interprocess Communication,进程间通讯)服务,用来在各个软件中交换信息,建议关闭 关闭
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邮件服务的守护进程,如果有邮件服务就开启,否则关闭 关闭
setrouleshoot 用于SELinux行管信息记录在/var/log/messages中,建议开启 开启
smartd 该服务拥有自动检测硬盘状态,建议开启 开启
smb 网络服务samba的守护进程。可以让Linux和Windows之间共享数据,如果需要则开启 关闭
squid 代理服务的守护进程,需要则开启,否则关闭 关闭
sshd ssh加密远程登录管理的服务。服务器的远程管理必须使用此服务,不需要则关闭
syslog 日志的守护进程 开启
vsftpd vsftp服务的守护进程。需要FTP服务则开启,否则关闭 关闭
xfs 这是XWindow的字体守护进程。为图形界面提供字体服务。不需要启动图形界面就不开启 关闭
xinetd 超级守护进程。如果有依赖xinetd的服务就开启 开启
ypbind 为NIS(网络信息系统)客户机激活ypbind服务进程 关闭
yum-updatesd yum的在线升级服务

参考

慕课网Linux服务管理

你可能感兴趣的:(Linux服务管理)