HCRM博客

如何在CentOS 7中创建和管理启动脚本?

CentOS 7启动脚本

背景介绍

如何在CentOS 7中创建和管理启动脚本?-图1
(图片来源网络,侵权删除)

在系统管理中,开机自启动脚本是一项重要的功能,它允许某些程序或服务在系统启动时自动运行,从而简化操作流程和提高系统效率,本文将详细介绍如何在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/

创建符号链接

创建一个符号链接,以便在系统启动时自动运行脚本:

如何在CentOS 7中创建和管理启动脚本?-图2
(图片来源网络,侵权删除)
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. 编写服务文件

如何在CentOS 7中创建和管理启动脚本?-图3
(图片来源网络,侵权删除)

创建一个名为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、检查是否有依赖的服务未启动导致脚本失败。

分享:
扫描分享到社交APP
上一篇
下一篇