Centos7 设置开机自启有哪些方法
一、系统服务的方式
1. 前提
(1)首先要将需要自启的软件或应用注册成系统服务,下面提供常用的软件注册系统服务的案例
nginx.service
创建服务文件
redis.service
创建服务文件
nacos.service(这种是基于shell脚本执行的案例,需要将你的执行脚本授予执行权限,如:chmod +x /usr/local/nacos/bin/startup.sh)
创建服务文件
其他的脚本类型的可以参考nacos 那种方式,先创建启动应用和停止应用的脚本,再给脚本授权执行权,最后创建服务
服务的文件存放在 /usr/lib/systemd/system 如下:
/usr/lib/systemd/system/nacos.service
/usr/lib/systemd/system/nginx.service
/usr/lib/systemd/system/redis.service
2. 配置描述
Description -描述服务
After -描述服务类别
[Service] -服务运行参数的设置
Type=forking -是后台运行的形式
ExecStart -为服务的具体运行命令
ExecReload -为重启命令
ExecStop -为停止命令
PrivateTmp=True - 表示给服务分配独立的临时空间
注意:[Service]的启动、重启、停止命令全部要求使用绝对路径
[Install] -运行级别下服务安装的相关设置,可设置为多用户,即系统运行级别为3
3. 全部命令
二、 系统自带启动
1. 写好自己应用的启动脚本,例如:
# 创建脚本
vi /home/myShell/startup.sh
添加脚本内容
#!/bin/bash
# 后台启动java应用
nohup java -Dserver.port=8858 -jar /usr/local/sentinel/sentinel-dashboard-1.8.2.jar >> logs/start.log 2>&1 &
授执行权限
chmod +x /home/myShell/startup.sh
2. 添加自启
编辑自启的系统文件
# /etc/rc.d/rc.local 这个文件是系统自带的启动文件
vi /etc/rc.d/rc.local
添加下面我们要自启的脚本
/home/myShell/startup.sh
3. 在centos7中,/etc/rc.d/rc.local的权限被降低了,所以需要执行如下命令赋予其可执行权限
chmod +x /etc/rc.d/rc.local
三、利用系统 /etc/rc.d/init.d 自启
1. 创建自己的脚本 (参考方式二的第一点创建脚本)
2. 将执行的脚本放在到/etc/rc.d/init.d目录下
3. 添加脚本到开机自动启动项目中
注意:所有需要执行的文件都需要授予执行权限
授权命令: chmod +x [脚本的绝对路径]
1. 前提
(1)首先要将需要自启的软件或应用注册成系统服务,下面提供常用的软件注册系统服务的案例
nginx.service
创建服务文件
- vi /usr/lib/systemd/system/nginx.service
- [Unit]
- Description=nginx
- After=network.target remote-fs.target nss-lookup.target
-
- [Service]
- Type=forking
- ExecStart=/usr/local/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
- ExecReload=/usr/local/sbin/nginx -s reload
- ExecStop=/usr/local/sbin/nginx -s stop
- ExecQuit=/usr/local/sbin/nginx -s quit
- PrivateTmp=true
-
- [Install]
- WantedBy=multi-user.target
创建服务文件
- vi /usr/lib/systemd/system/redis.service
- [Unit]
- Description=Redis6.2.5
- After=network.target
-
- [Service]
- PIDFile=/var/run/redis_6379.pid
- ExecStart=/usr/local/redis/bin/redis-server /usr/local/redis/conf/redis.conf
- ExecReload=kill -s HUP $MAINPID
- ExecStop=kill -s QUIT $MAINPID
- PrivateTmp=true
-
- [Install]
- WantedBy=multi-user.target
创建服务文件
- vi /usr/lib/systemd/system/nacos.service
- [Unit]
- Description=nacos-server-2.0.3
- After=network.target
-
- [Service]
- Type=forking
- ExecStart=/usr/local/nacos/bin/startup.sh -m standalone
- ExecReload=/usr/local/nacos/bin/shutdown.sh
- ExecStop=/usr/local/nacos/bin/shutdown.sh
- PrivateTmp=true
-
- [Install]
- WantedBy=multi-user.target
服务的文件存放在 /usr/lib/systemd/system 如下:
/usr/lib/systemd/system/nacos.service
/usr/lib/systemd/system/nginx.service
/usr/lib/systemd/system/redis.service
2. 配置描述
Description -描述服务
After -描述服务类别
[Service] -服务运行参数的设置
Type=forking -是后台运行的形式
ExecStart -为服务的具体运行命令
ExecReload -为重启命令
ExecStop -为停止命令
PrivateTmp=True - 表示给服务分配独立的临时空间
注意:[Service]的启动、重启、停止命令全部要求使用绝对路径
[Install] -运行级别下服务安装的相关设置,可设置为多用户,即系统运行级别为3
3. 全部命令
- #重载服务单元
- systemctl daemon-reload
-
- #启动redis服务
- systemctl start redis.service
- #设置开机自启动
-
- systemctl enable redis.service
-
- #停止开机自启动
- systemctl disable redis.service
-
- #查看服务当前状态
- systemctl status redis.service
-
- #重新启动服务
- systemctl restart redis.service
-
- #查看所有已启动的服务
- systemctl list-units --type=service
1. 写好自己应用的启动脚本,例如:
# 创建脚本
vi /home/myShell/startup.sh
添加脚本内容
#!/bin/bash
# 后台启动java应用
nohup java -Dserver.port=8858 -jar /usr/local/sentinel/sentinel-dashboard-1.8.2.jar >> logs/start.log 2>&1 &
授执行权限
chmod +x /home/myShell/startup.sh
2. 添加自启
编辑自启的系统文件
# /etc/rc.d/rc.local 这个文件是系统自带的启动文件
vi /etc/rc.d/rc.local
添加下面我们要自启的脚本
/home/myShell/startup.sh
3. 在centos7中,/etc/rc.d/rc.local的权限被降低了,所以需要执行如下命令赋予其可执行权限
chmod +x /etc/rc.d/rc.local
三、利用系统 /etc/rc.d/init.d 自启
1. 创建自己的脚本 (参考方式二的第一点创建脚本)
2. 将执行的脚本放在到/etc/rc.d/init.d目录下
3. 添加脚本到开机自动启动项目中
- # 切换到这个目录下
- cd /etc/rc.d/init.d
-
- # 添加我们的脚本
- chkconfig --add startup.sh
-
- # 设置自启执行
- chkconfig startup.sh on
授权命令: chmod +x [脚本的绝对路径]