在CentOS系统中,启动脚本的设置和管理是系统管理员日常工作中的一项重要任务,启动脚本通常用于在系统启动时自动执行一系列命令或程序,以完成特定的任务或服务,以下是对 CentOS 启动脚本的具体介绍:
创建启动脚本
1、编写脚本:需要编写一个shell脚本,这个脚本可以包含任何需要在系统启动时执行的命令或程序,可以创建一个名为start.sh
的脚本,内容如下:
#!/bin/bash echo '准备启动 frp...' cd /root/clouddevice/frp/ & nohup /root/clouddevice/frp/frps c /root/clouddevice/frp/frps.ini > frps.log & echo 'frp启动完毕!' echo '准备启动 rethinkdb及stf...' cd /root/clouddevice/stf rethinkdb & 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 启动完毕!'
在这个脚本中,使用了nohup
命令来确保命令在后台持续运行,即使用户注销也不会影响其执行。
2、赋予权限:编写完成后,需要给脚本赋予可执行权限,可以使用chmod
命令来实现:
chmod +x start.sh
将脚本添加到开机自启动
在CentOS 7及更高版本中,推荐使用systemd来管理服务,可以将脚本配置为systemd服务,以便在系统启动时自动执行。
1、编写服务文件:在/usr/lib/systemd/system
目录下创建一个新的服务文件,例如myscript.service
如下:
[Unit] Description=My Script Service After=network.target remotefs.target nsslookup.target [Service] Type=forking ExecStart=/path/to/your/start.sh ExecReload=/path/to/your/reload.sh ExecStop=/path/to/your/stop.sh PrivateTmp=true [Install] WantedBy=multiuser.target
注意将/path/to/your/start.sh
替换为实际的脚本路径。
2、重新加载systemd守护进程:使用以下命令重新加载systemd守护进程,使新的服务文件生效:
systemctl daemonreload
3、启用并启动服务:使用以下命令启用新服务,并在系统启动时自动启动:
systemctl enable myscript.service systemctl start myscript.service
常见问题解答
1、如何检查服务状态?:可以使用systemctl status myscript.service
命令来检查服务的状态,这将显示服务的当前状态、是否正在运行以及最近的日志条目。
2、如何停止和禁用服务?:要停止服务,请使用systemctl stop myscript.service
命令;要禁用服务(即不再在系统启动时自动启动),请使用systemctl disable myscript.service
命令。
通过上述步骤,可以在CentOS系统中成功创建并设置开机启动脚本,这不仅可以简化日常管理任务,还能确保系统在启动时自动执行关键任务和服务。