本文目錄:
#11.1 服務的概念
11.2 管理獨立守護程式
#11.3 管理服務的開機自啟動
#11.4 管理xinetd及相關瞬時守護程式
11.5 CentOS 7上管理服務
11.2 管理獨立守護程式
[root@xuexi tmp]# ls /etc/init.d abrt-ccpp cpuspeed irqbalance messagebus psacct saslauthd abrtd crond kdump netconsole quota_nld single abrt-oops functions killall netfs rdisc smartd acpid haldaemon lvm2-lvmetad network restorecond sshd atd halt lvm2-monitor ntpd rngd svnserve auditd ip6tables mcelogd ntpdate rsyslog sysstat blk-availability iptables mdmonitor postfix sandbox udev-post要管理獨立守護程式類別的服務
/etc/init.d/service_name restart|start|stop|status # 方法一 service service_name restart|start|stop|status # 方法二要讓服務能夠被service指令管理,將其服務腳本放在/etc/init.d目錄下即可。 #########11.3 管理服務的開機自啟動######chkconfig指令能管理/etc/init.d/目錄下存在且腳本的內容滿足一定條件的服務。 ######要能讓chkconfig管理服務的開機是否自啟動行為,只要將腳本放在/etc/init.d目錄下,然後在腳本的前部加上chkconfig行和description行。如:######
#!/bin/bash # chkconfig: - 85 15# description: The Apache HTTP Server is an efficient and extensible######這兩行必須在所有非註解行的前面,且這兩行必須得被"註解"。其中chkconfig行"-"表示適用於運作等級123456上,85表示開機啟動時,它的啟動順序為85,15表示關機停止服務時,它的停止順序為15。 description行隨便給一點描述資訊就可以,但必須得給"description:"關鍵字。 ######然後,就可以有chkconfig來管理服務的開機自啟動了。 ######
chkconfig [--add | --del] <name> # 将/etc/init.d中可以被chkconfig管理的服务添加到chkconfig的管理列表中,或者从列表中删除 chkconfig [--list] [name] # 列出指定名称的服务的开启自启动信息。name可以使用all来表示列出所有chkconfig管理列表中的服务 chkconfig [--level <levels>] <name> <on|off|reset> # 将指定名称的服务在指定级别上打开开机自启动或关闭开机自启动功能。 # reset则表示重置为脚本中指定的级别###
当然,除了chkconfig可以管理开机自启动,将启动命令放在/etc/rc.d/rc.local文件中也是可以的。
该类服务不能直接使用service命令来启动。只能去/etc/xinetd.d/目录下的对应文件中进行设置(当然,也可以在/etc/xinetd.conf中配置),然后由xinetd进行管理。
首先安装xinetd程序。
[root@xuexi tmp]# yum -y install xinetd [root@xuexi tmp]# chkconfig --list ......省略 xinetd 0:off 1:off 2:off 3:on 4:on 5:on 6:off xinetd based services: chargen-dgram: off chargen-stream: off daytime-dgram: off daytime-stream: off discard-dgram: off discard-stream: offecho-dgram: offecho-stream: off rsync: off tcpmux-server: offtime-dgram: offtime-stream: off
首先得保证xinetd是已经工作在后台的。
service xinetd start
然后管理瞬时守护进程,该类服务比较特别,其自启动状态和服务运行状态是同步的,也就是说chkconfig设置了其自启动则表示启动该服务,否则为停止该服务。另外,对其指定级别是无效的,它们的启动级别继承与xinetd的启动级别,并且xinetd会接管其触发的瞬时守护进程的端口号。
例如启动rsync这个瞬时守护进程。
chkconfig rsync on
瞬时守护进程受两个配置文件控制,一个是xinetd的配置文件/etc/xinetd.conf提供默认配置,一个是/etc/xinetd.d/下的配置文件针对对应的服务提供配置。
例如配置rsync,以下是/etc/xinetd.d/rsync的默认配置。
[root@xuexi tmp]# vi /etc/xinetd.d/rsync # default: off # description: The rsync server is a good addition to an ftp server, as it \ # allows crc checksumming etc. service rsync # 定义rsync服务,名称要和/etc/xinetd.d/下的文件同名 { disable = yes # yes表示不启动,no表示启动,等价于chkconfig rsync {on|off},所以这里设置后将直接在chkconfig中生效 flags = IPv6 # 不用管 socket_type = stream # 这代表的是tcp类型的套接字wait = no # 该服务是单线程还是多线程的,表现形式是超出的请求是否进行等待,no表示多线程 user = root # 以什么身份运行rsync server = /usr/bin/rsync # 服务程序 server_args = --daemon # 服务程序启动时传递的参数 log_on_failure += USERID # 连接失败的日志记录,+表示在全局对应的条目上新增此处指定的USERID }
除此之外,还有几个选项:
【访问控制选项】以下两个控制列表中最好不要出现冲突的地址。 only_from:定义允许连接的访问控制列表,支持单IP,CIDR格式和长mask格式的网段,主机名hostname,域DOMAIN(.abc.com) no_access:定义不允许访问的列表,语法格式同only_from 【监听地址】 bind = ip_addr interface = ip_addr # 等价于bind 【资源控制】 cps=args1 args2 instances=N per_source=N
这3个选项的意义如下图。
service name start ==> systemctl start name.service
service name stop ==> systemctl stop name.service
service name restart ==> systemctl restart name.service
service name status ==> systemctl status name.service
查看服务是否激活(在运行中):systemctl is-active name.service
查看所有已经激活 :systemctl list-units --type service
查看所有服务 :systemctl list-units --type service --all
设置开机自启动:chkconfig name on ==> systemctl enable name.service
禁止开机自启动:chkconfig name off ==> systemctl disable name.service
查看服务是否开机自启动:chkconfig --list name ==> is-enabled name.service
查看所有服务的开机自启动状态:chkconfig --list ==> systemctl list-unit-files --type service
回到系列文章大纲:
以上是Linux服務管理的詳細內容。更多資訊請關注PHP中文網其他相關文章!