Linux服务管理可以对服务的运行进行开启和关闭,对于各种软件应用功能很有作用,对于查看Linux异常也有帮助。注意,不同包源安装的服务,管理方式、操作命令都是有不同的。
一、简介与分类
一、简介与分类
⑴、系统的运行级别
0 关机
1 单用户(启动最小服务用于修复)相当于Windows中的安全模式
2 不完全多用户,不含NFS服务 正常服务除了NFS服务
3 完全多用户,标准的字符界面 正常服务
4 未分配,系统保留
5 图形界面 启动图形界面(前提是安装过)
6 重启
查看运行级别命令:runlevel
修改运行级别命令:init 运行级别
注释:init 6、和init 0命令不一定会正确结束系统正在运行的服务,所以并不可靠,不建议使用这两个命令关机、重启
修改系统默认运行级别配置文件:vim /etc/inittab
id:3:initdefault: #开机默认进入3级别
⑵、服务的分类
独立的服务
RPM包默认安装的服务
①、Linux服务 基于xinetd服务(后面版本淘汰)
源码包安装的服务
服务的启动:当前系统中让服务运行并提供相应功能
服务自启动:服务在系统开机或重启随系统的启动而启动的服务
②、查询已安装的服务
chkconfig --list #查询RPM包服务自启动命令(也可以查看服务自启动状态)
/usr/local/ #源码包安装的服务位置,usr(是Unix系统资源的缩写)
注释:服务自启动是不能确定服务是否启动的,两者没有联系;
③、PRM和源码包安装服务的区别:安装位置不同!
源码包指定安装在/usr/local/下,RPM包安装在默认位置中
⑶、服务与端口
①、查询当前系统正在运行的服务
ps aux #这个命令查询出来的不太准确,因为还有程序会占用进程
查询端口对应的服务 #这是第二种方法
端口:是传输层将数据传输到对应应用层的接口,以便系统知道提供何种服务


注释:TCP和UDP都各自有65536个,但是系统怕混乱,使用TCP协议开放TCP端口时也会空出UDP端口,反之亦然,所以一般称端口为65535个。
②、端口与服务的对应
一般10000以内的端口是系统自留,具体可查看/etc/services 文件
③、查询系统中开启的服务
netstat -tlunp #列出系统中当前已经启动的服务(只能查监听端口)
-t #列出tcp数据
-u #列出udp数据
-l #列出正在监听的网络服务(不包含已经连接的网络服务)
-n #用端口号来显示服务,而不是用服务名
-p #列出该服务的进程ID(PID)
netstat -an #查询系统当前的服务和程序所占用的端口情况(可查连接端口和监听端口)
二、RPM包服务管理
RPM包主要的安装位置解析:
/etc/init.d/ #启动脚本位置
/etc/sysconfig/ #初始化环境配置文件位置
/etc/ #配置文件位置
/etc/xinetd.conf #xinetd配置文件
/etc/xinetd.d/ #基于xinetd服务的启动脚本
/var/lib/ #服务产生的数据放在这里
/var/log #日志
(由于安装方式不同导致安装的绝对路径不同,而软件或者服务启动都上采用绝对路径进行启动的,路径不同因此启动方式不同)
①、独立服务的管理(在内存中直接运行的服务,响应更快但占用内存)
※、独立服务的启动(通过RPM包安装的程序后面都会加个d)
/etc/init.d/独立服务名 start|stop|status|restart| #标准启动方式,/etc/rc.d/init.d同/etc/init.d/
service 独立服务名 start|stop|restart|status| #Redhat专有命令
※、独立服务的自启动(二种不同方法自启动,在各自查询时状态时不相关,都设置启动的话会重启二次,会报错)
chkconfig [--level 运行级别] [独立服务名] [on|off]
例如:chkconfig --list | grep httpd #查看httpd服务自启动状态
chkconfig --level 2345 httpd on
#设定httpd服务自启动,当前未必启动了,所以service httpd start
chkconfig httpd off #关闭httpd服务自启动
或者使用ntsysv命令管理自启动,在弹出的界面中输入*即可,按空格为清除
这个方法与上面的方法是一样的,只是修改途径不同。而且修改的只是图形界面5的自启动,要想其他一致,尝试一下ntsysv 2345,注意这个方法也是Redhat专有命令
修改/etc/rc.d/rc.local文件(类似Windows中自定义启动项,推荐这种方法)
vi /etc/rc.d/rc.local #/etc/rc.d/rc.local同/etc/rc.local
增加/etc/init.d/httpd start
保存退出:wq
②、基于xinetd服务的管理(xinetd在内存中,管理的服务需要时调用,效率低)
安装(由于效率低下,后续版本剔除了):yum -y install xinetd
xinetd主要的服务rsync是对Linux和Windows数据同步、数据备份。
启动:vi /etc/xinetd.d/rsync 将disable = no 改成默认启动
service xinetd restart #rsync是被xinetd管理,本身没有启动脚本
xinetd服务自启动:设置启动或关闭,会一致默认其下面的服务自启或关闭
chkconfig rsync on ntsysv找到服务加*号
chkconfig rsync off #停止自启动,还会停止当前服务
三、源码包服务管理
①、源码包安装服务的启动:使用绝对路径,调用启动脚本来启动。不同的源码包的启动脚本不同。可以查看源码包的安装说明,查看启动脚本的方法。
例如:/usr/local/apache2/bin/apachectl start|stop
②、源码包服务的自启动 vi /etc/rc.local (vi /etc/rc.d/rc.local)
加入 /usr/local/apache2/bin/apachectl start
③、让源码包服务被服务管理命令识别
让源码包的apache服务能被service命令管理启动(做个软链接)
ln -s /usr/local/apache2/bin/apachectl /etc/init.d/apache
让源码包的apache服务能被chkconfig、ntsysv命令管理启动
vi /etc/init.d/apache 后加入下面两句话
# chkconfig:35 86 76 #不是注释,是命令
# description:source package apache #是注释,但必须要加
chkconfig --add apache #加入chkconfig命令才算完成
注释:chkconfig:35 86 76 chkconfig 运行级别 启动顺序 关闭顺序
启动顺序和关闭顺序号不能和系统内置的顺序号相同,系统内置的顺序号可以进入查看:cd /etc/rc3.d/ ls (rc3中的3代表运行级别,里面文档中的K字头代表关闭程序的顺序,S字头代表启动顺序,也就是说关闭级别需要每个K字头都执行一遍,而启动级别需要每个S字头启动一遍,这里添加的启动、关闭顺序不要和上面目录里面的顺序相同即可,至于多少可以自定义)
四、服务管理总结

四、服务管理总结

讲师总结的服务优化(针对RPM包服务)
服务名称 功能简介 建议
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的频率。当闲置时可以自动降低频率减少电量 开启
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打印机支持,如果没有关闭 关闭
httpd apache服务的守护进程。需要启动就开启,否则关闭 开启
ip6tables IPV6的防火墙,目前IPV6协议并没有使用,可以关闭 关闭
iptables 防火墙功能,Linux中防火墙是内核支持功能,是服务器的主要防护手段,必须开启 开启
irda IrDA提供红外设备(笔记本,PDA's,手机,计算器等等)之间的通讯支持,关闭 关闭
irqbalance 支持多核处理器,让CPU可以自动分配系统中断(IRQ),提高系统性能。目前服务器都是多核,开启 开启
isdn 使用ISND设备连接网络,主流是光纤和ADSL,关闭 关闭
kudzu 该服务可以在开机时进行硬件检测,并会调用相关的设置软件,建议关闭,仅在需要时开启 关闭
lvm2-monitor 该服务可以让系统支持LVM逻辑卷组,如果分区采用的是LVM方式,那么应该开启。建议开启 开启
mcstrans SELinux的支持服务。建议开启 开启
mdmonitor 该服务用来监测Software RAID 或 LVM的信息,建议关闭 关闭
mdmod 该服务用来监测Multi-Path设备,不是必须服务 关闭
messagebus 这是Linux的IPC进程间通讯服务,用来在各软件中交换信息,个人建议关闭
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监测和重新加载正确的文件上下文 关闭
rpcgssd 与NFS有关的客户端功能,如果没有NFS关闭 关闭
rpcidmapd 同上 关闭
rsync 远程数据备份守护进程 关闭
sendmail 邮件服务的守护进程,有邮件服务就开启 关闭
setroubleshoot 该服务用于将SELinux相关信息记录在日志/var/log/messages中 开启
smartd 该服务用于自动检测硬盘状态,建议开启 开启
smb 网络服务samba的守护进程,可以让Linux和Windows之间共享数据,如果需要则开启 关闭
squid 代理服务的守护进程,如果需要开启,否则关闭 关闭
sshd ssh加密远程登录管理服务,服务器的远程管理必须使用此服务 开启
syslog 日志的守护进程 开启
vsftpd vsftp服务的守护进程,如果需要FTP服务则开启,否则关闭 关闭
xfs 这个是XWindows的字体守护进程,为图形界面提供字体服务如果不启动图形界面,就不用开启 关闭
xinetd 超级守护进程,如果有依赖xinetd的服务就必须开启 开启
ypbind 为NIS(网络信息系统)客户机激活ypbind服务进程 关闭
yum-updatesd yum的在线升级服务 关闭