[实用技巧] CentOS 7如何手动为服务添加自启动?
引言
在CentOS 7中,大部分服务都可以通过systemctl enable service_name
命令来实现自启动。但是,有些特殊情况下,我们可能需要手动添加某些服务的自启动。下面,我将向您演示如何执行此操作。
要求环境
在开始之前,您需要满足以下要求:
-
CentOS 7操作系统 -
root权限或具有sudo访问权限
请确保您已正确设置环境,并且拥有对应的权限。
实战案例
方案一:
下面我将以httpd
服务为例,详细说明如何手动为服务添加自启动:
-
打开终端并以root身份登录到您的CentOS 7系统。
-
使用文本编辑器(如vim)打开
/etc/rc.d/rc.local
文件。 -
在文件末尾添加以下内容:
/usr/sbin/httpd
这行代码将启动
httpd
服务。 -
保存并关闭文件。
-
接下来,我们还需要为
rc.local
文件设置可执行权限。在终端中执行以下命令:chmod +x /etc/rc.d/rc.local
这会赋予
rc.local
文件可执行权限。 -
最后,在终端中启动
httpd
服务:systemctl start httpd
确保服务正确启动。
-
然后,重启系统:
reboot
系统重启后,
httpd
服务将自动启动。
方案二
-
使用root权限登录到CentOS 7服务器。
-
进入
/etc/init.d/
目录:
cd /etc/init.d/
-
创建一个名为 <service_name>
的启动脚本文件:
touch <service_name>
将 <service_name>
替换为你的服务名称,例如可以新建一个文件名字为tomcat
;
touch tomcat
-
在打开的文件中,添加以下模板代码:
#!/bin/bash
# chkconfig: 2345 99 01
# description: Description of your service
# Add your service start, stop, restart, etc. commands here
注意:
-
在 chkconfig
行中,2345
是运行级别,99
是启动顺序,01
是停止顺序。根据你的需求进行适当修改。 -
在 description
行中,输入你的服务描述。
-
在脚本中配置你的服务的启动、停止、重启等命令。例如,你可以添加以下命令来启动你的服务:
# Start command example
source /etc/profile # 这一步很重要,一定要写上
cd /home/tomcat
./bin/startup.sh
-
保存并退出文件,此时完整的脚本内容如下:
#!/bin/bash
# chkconfig: 2345 99 01
# description: Description of your service
# Add your service start, stop, restart, etc. commands here
# Start command example
source /etc/profile # 这一步很重要,一定要写上
cd /home/tomcat
./bin/startup.sh
-
设置脚本的可执行权限:
chmod +x tomcat
-
添加你的服务到启动项:
chkconfig --add tomcat
-
设置服务的运行级别,让它在所需的运行级别下自动启动(例如:2, 3, 4 和 5):
chkconfig --level 2345 tomcat on
-
重新启动服务器,你的服务将自动启动。
-
查看是否配置成功了,可以看到最后一行就是我们添加的服务
tomcat
了。
[root@localhost ~]# chkconfig --list
agentboot 0:off 1:off 2:on 3:on 4:on 5:on 6:off
denyhosts 0:off 1:off 2:on 3:on 4:on 5:on 6:off
jdog_service 0:off 1:off 2:on 3:on 4:on 5:on 6:off
netconsole 0:off 1:off 2:off 3:off 4:off 5:off 6:off
network 0:off 1:off 2:on 3:on 4:on 5:on 6:off
tomcat 0:off 1:off 2:on 3:on 4:on 5:on 6:off
[root@localhost ~]#
请注意,在使用此方法之前,确保你的服务可以通过命令行手动启动、停止和重启。如果你的服务无法通过命令行正常运行,请检查服务的配置和依赖项。
文章总结
通过执行上述步骤,您已经成功地为CentOS 7系统中的服务手动添加了自启动。虽然我们无法使用systemctl enable service_name
命令,但采用手动添加的方式同样能够实现自启动的效果。
如果您对本文内容感到满意并希望继续接收更多类似的技术知识,请关注并分享我们的运维家微信公众号。感谢您的支持!
注:本文中的示例仅以httpd
和tomcat
服务为例,请根据实际需求修改相应的服务名称。
发表评论