centos7 自启动脚本
环境
centos7, docker,docker postgresql, python3+, project
原因
每次虚拟机重启之后数据库就会宕掉,每次重启之后,还容易忘记关闭防墙
步骤
-
编写sh脚本
#! /bin/sh # chkconfig:2345 80 90 # description:tttt.sh echo "colse firewall" systemctl stop firewalld.service echo "shart docker" systemctl start docker echo "start postgres" docker start postgres1 echo "start project" nohup /home/python3/bin/python3 /home/backend/main.py start > /home/backend/test.log 2>&1 &
注释:
#!/bin/sh是指此脚本使用/bin/sh来解释执行,#!是特殊的表示符,其后面根的是此解释此脚本的shell的路径。其实第一句的#!是对脚本的解释器程序路径,脚本的内容是由解释器解释的,我们可以用各种各样的解释器来写对应的脚本。 chkconfig 命令主要用来更新(启动或停止)和查询系统服务的运行级信息。
-
测试方式
在于sh同级目录上输入
./tttt.sh tttt指脚本名称
出现sh中的echo内容就表示sh脚本内容通过了
方法
-
1、 修改rc.local
- 赋予rc.local可执行权限
chmod +x /etc/rc.d/rc.local
- 赋予脚本可执行权限(/usr/local/script/autostart.sh是你的脚本路径)
chmod +x /home/tttt.sh
-
打开/etc/rc.d/rc.local文件,在末尾增加如下内容
/home/tttt.sh
- 赋予rc.local可执行权限
-
2、chkconfig管理
- 在/etc/init.d 目录中添加test文件,并想test文件中写入
#!/bin/bash # chkconfig: 3 88 88 /home/tttt.sh
- 赋予可执行权限
chmod +x /etc/init.d/test
- 添加到chkconfig,开机自启动
chkconfig --add test
- 查看是否添加成功
chkconfig --list test
如:
(已成功)
- 删除服务
chkconfig --del test
- 在/etc/init.d 目录中添加test文件,并想test文件中写入
验证
重启服务器
reboot
然后查看是否启动docker,以及对应的镜像(有镜像表示成功)
docker ps
或者查看防火墙是否关闭(not running 表示脚本成功)
firewall-cmd --state