SpringBoot服务在Centos7.9下开机自启
rc.local方式
在 CentOS 7.9 中,使用 rc.local
文件的方式实现开机启动脚本。rc.local
文件是一个在系统启动时会执行其中命令的脚本文件。
以下是实现的步骤:
-
编辑
rc.local
文件:-
打开
/etc/rc.d/rc.local
文件进行编辑:sudo vim /etc/rc.d/rc.local
-
如果文件不存在,可以创建一个新文件并赋予执行权限:
sudo touch /etc/rc.d/rc.local sudo chmod +x /etc/rc.d/rc.local
-
-
添加启动脚本:
-
在
rc.local
文件中,添加你的启动脚本或命令。例如:# 启动脚本路径 sh /path/to/your/serviceauto.sh > /path/to/your/serviceauto.log
请确保在文件的末尾保留
exit 0
行,这是文件的一部分,用于标识脚本的结束。服务启动脚本供参考
#!/bin/bash # 检查目标目录是否存在 target_directory="/opt" if [ ! -d "$target_directory" ]; then echo "目标目录 $target_directory 不存在" exit 1 fi # 获取目标目录下的所有 .sh 文件 script_files=$(find "$target_directory" -type f -name "*.sh") # 循环执行每个脚本 for script_file in $script_files; do # 获取脚本所在目录 script_directory=$(dirname "$script_file") # 打印当前执行的脚本信息 echo "执行脚本:$script_file" # 进入脚本所在目录并执行脚本 cd "$script_directory" || exit 1 bash "$script_file" # 返回到原始目录 cd - || exit 1 done echo "所有脚本执行完成" exit 0
-
-
设置权限:
-
确保
rc.local
文件有执行权限:sudo chmod +x /etc/rc.d/rc.local
-
-
重启系统:
-
重启系统,使修改生效:
sudo reboot
当系统重新启动时,
rc.local
中的命令将会执行。 -
请注意,使用 rc.local
的方式虽然简单,但在较新的 Linux 发行版中,systemctl 更为常见和推荐。
systemctl 方式
CentOS 7.9 系统基于 systemctl ,建议使用的 systemctl 方法。
-
创建启动脚本:
-
首先,创建你的启动脚本。将脚本保存在一个你认为合适的位置,例如
/etc/systemd/system
目录下。例如,假设你的启动脚本是/path/to/your/script.sh
:#!/bin/bash # Your startup script content
-
-
授予执行权限:
-
确保你的脚本有执行权限:
chmod +x /path/to/your/serviceauto.sh
-
-
创建 Systemd 服务单元文件:
-
在
/etc/systemd/system/
目录下,创建一个带有.service
扩展名的文件,例如/etc/systemd/system/your-service.service
。编辑这个文件,指定启动脚本路径等信息。示例内容:[Unit] Description=Your Service Description After=network.target [Service] ExecStart=/path/to/your/script.sh Restart=always User=your_username [Install] WantedBy=multi-user.target
注意:修改
ExecStart
和User
字段的值,分别指定你的启动脚本路径和执行服务的用户名。
-
-
启用并启动 Systemd 服务:
-
执行以下命令启用和启动你的 Systemd 服务:
systemctl enable your-service.service systemctl start your-service.service
这样,你的脚本就会在系统启动时自动运行。
-
-
检查服务状态:
-
你可以使用以下命令来检查服务的状态:
systemctl status your-service.service
如果一切正常,你应该看到服务处于运行状态。
-
请根据你的服务实际情况修改这些步骤中的路径和配置信息。