CentOS 7启动脚本
背景介绍

在系统管理中,开机自启动脚本是一项重要的功能,它允许某些程序或服务在系统启动时自动运行,从而简化操作流程和提高系统效率,本文将详细介绍如何在CentOS 7系统中创建和管理开机自启动脚本。
创建开机自启动脚本步骤
编写Shell脚本
需要编写一个Shell脚本文件,创建一个名为myscript.sh
的文件:
- #!/bin/bash
- echo "准备启动frp..."
- cd /root/clouddevice/frp/ &> /dev/null && nohup /root/clouddevice/frp/frps c /root/clouddevice/frp/frps.ini > frps.log 2>&1 &
- echo "frp启动完毕!"
- echo "准备启动rethinkdb及stf..."
- cd /root/clouddevice/stf &> /dev/null
- nohup rethinkdb &> /dev/null &
- nohup stf local publicip 192.168.137.100 binddevpull tcp://0.0.0.0:7114 binddevpub tcp://0.0.0.0:7116 R &> stf.log &
- echo "rethinkdb及stf 启动完毕!"
确保脚本具有执行权限:
- chmod +x myscript.sh
复制脚本到指定目录
将脚本文件复制到/etc/rc.d/init.d/
目录下:
- sudo cp myscript.sh /etc/rc.d/init.d/
创建符号链接
创建一个符号链接,以便在系统启动时自动运行脚本:

- sudo ln s /etc/rc.d/init.d/myscript.sh /etc/rcS.d/S99myscript.sh
数字99表示脚本将在系统启动时按顺序运行,数字越小表示越先运行。
确保可执行权限
在CentOS 7中,默认情况下/etc/rc.d/rc.local
文件的权限被降低,因此需要手动赋予其可执行权限:
- sudo chmod +x /etc/rc.d/rc.local
编辑rc.local文件
打开并编辑/etc/rc.d/rc.local
文件,添加以下内容:
- su developer c '/opt/script/autostart.sh'
其中developer
是系统登录用户名,可以根据实际需求进行修改。
自定义systemd服务(可选)
另一种方法是通过创建自定义的systemd服务来实现开机自启动,以下是一个简单的示例:
a. 编写服务文件

创建一个名为myscript.service
的文件,内容如下:
- [Unit]
- Description=My Custom Script
- After=network.target remotefs.target nsslookup.target
- [Service]
- Type=forking
- ExecStart=/usr/local/tomcat/bin/startup.sh
- ExecReload=/bin/kill s HUP $MAINPID
- ExecStop=/bin/kill s TERM $MAINPID
- PrivateTmp=true
- [Install]
- WantedBy=multiuser.target
保存文件到/usr/lib/systemd/system/
目录。
b. 设置开机自启动
启用服务:
- sudo systemctl enable myscript.service
c. 启动服务
启动服务:
- sudo systemctl start myscript.service
相关FAQs
Q1: 如何更改开机自启动脚本的运行顺序?
A1: 可以通过调整符号链接的名称来改变脚本的运行顺序,将S99myscript.sh
改为S99myscript.sh
,数字越小表示越先运行。
Q2: 如果开机自启动脚本未能成功运行,该如何排查问题?
A2: 可以检查以下几个方面:
1、确保脚本具有执行权限。
2、查看系统日志(如/var/log/messages
)以获取更多错误信息。
3、确保脚本路径正确且文件存在。
4、检查是否有依赖的服务未启动导致脚本失败。