栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

CentOS中将服务设置为开机自启动(一)

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

CentOS中将服务设置为开机自启动(一)

1、概述

大家好,我是欧阳方超。
我们在Linux中安装软件时,有时会将其设置为开机自启动,这样当操作系统因各种原因重启后,我们就不用单独启动这个软件了。如果想要某个shell在系统重启时也得到执行,更甚至,我们想让一系列的软件服务在遇到系统重启时也能够安装顺序都启动起来,是否有办法解决这类问题呢,当然有!今天就介绍一种解决这类问题的思路。

2、场景介绍

假定这样一个场景,机器A在某省份的内网中,在其中运行着一个Tomcat,并对当地用户提供着服务,突然有一天这台机器的供电系统断电(没错,就是没有备用电源)5小时,当供电系统恢复正常时,客户略显茫然地打来电话问,机房电都恢复了为啥系统用不了了呢,此时你跟客户解释了原因,并跟经理提出说需要出差解决(没错,当地就是没有运维人员)。出差申请得到审批,于是你到了客户现场,把相关服务启动起来,问题得到解决。回来路上你边看路上的风景边寻思:如果机房再断电呢,能不能实现这样一个功能,机器重启后上面的服务能自动随操作系统启动而启动,这样一来为公司及个人减少了不少运维成本,客户对公司的认可度也会提高不少。

3、实现过程

第一步:写一个启动tomcat的脚本tomcat-auto-start.sh
Tomcat安装在下面的路径中:

/root/apache-tomcat-8.5.75

启动它的命令为startup.sh,其位于tomcat的bin下,那么该命令的绝对路径为:

/root/apache-tomcat-8.5.75/bin/startup.sh

我们在/root下写一个shell脚本文件,命名为tomcat-auto-start.sh,使用下面的命令赋予其执行权限:

chmod +x tomcat-auto-start.sh

并在里面写入如下内容:

#!/bin/bash
/root/apache-tomcat-8.5.75/bin/startup.sh

service iptables stop

为啥启动tomcat后要关闭防火墙呢,没错,tomcat使用的端口就是没加入到防火墙的开放端口列表中,不关闭的话访问不到tomcat服务。
第二步:将tomcat-auto-start.sh写入rc.local中
/etc/rc.d/下的rc.local文件是系统启动后会自动执行的文件,我们将刚才写的启动tomcat的脚本放入其中,实现由它启动tomcat的目地。

#!/bin/sh
#
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here if you don't
# want to do the full Sys V style init stuff.

touch /var/lock/subsys/local

/root/test.sh

第三步:检查rc.local是否具备执行权限
不同版本的CentOS中,rc.local执行权限可能不一样,使用时需要注意,CentOS6中rc.local默认带有执行权限,但是到CentOS7中rc.local默认不带执行权限,可以通过下面的命令赋予其执行权限:

chmod +x /etc/rc.d/rc.local

第四步:reboot机器
重启机器后,你会发现Tomcat是可以访问的,并且机器的防火墙也已经关闭了,这就说明编写的tomcat-auto-start.sh脚本没有问题,并且它也在rc.local中得到了执行。

4、总结

通过编写脚本实现服务在CentOS中随操作系统的启动而启动,可以将该思路扩展到有多个服务要设置开机自启动的情况。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/747321.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号