去评论
海欣资源

Centos7 设置开机自启有哪些方法

桃花树
2022/08/12 21:13:35
一、系统服务的方式
1. 前提
(1)首先要将需要自启的软件或应用注册成系统服务,下面提供常用的软件注册系统服务的案例
    nginx.service
创建服务文件
  1. vi  /usr/lib/systemd/system/nginx.service
  1. [Unit]
  2. Description=nginx
  3. After=network.target remote-fs.target nss-lookup.target

  4. [Service]
  5. Type=forking
  6. ExecStart=/usr/local/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
  7. ExecReload=/usr/local/sbin/nginx -s reload
  8. ExecStop=/usr/local/sbin/nginx -s stop
  9. ExecQuit=/usr/local/sbin/nginx -s quit
  10. PrivateTmp=true

  11. [Install]
  12. WantedBy=multi-user.target
redis.service
创建服务文件

  1. vi  /usr/lib/systemd/system/redis.service
  1. [Unit]
  2. Description=Redis6.2.5
  3. After=network.target

  4. [Service]
  5. PIDFile=/var/run/redis_6379.pid
  6. ExecStart=/usr/local/redis/bin/redis-server /usr/local/redis/conf/redis.conf
  7. ExecReload=kill -s HUP $MAINPID
  8. ExecStop=kill -s QUIT $MAINPID
  9. PrivateTmp=true

  10. [Install]
  11. WantedBy=multi-user.target
nacos.service(这种是基于shell脚本执行的案例,需要将你的执行脚本授予执行权限,如:chmod +x /usr/local/nacos/bin/startup.sh)
创建服务文件

  1. vi  /usr/lib/systemd/system/nacos.service
  1. [Unit]
  2. Description=nacos-server-2.0.3
  3. After=network.target

  4. [Service]
  5. Type=forking
  6. ExecStart=/usr/local/nacos/bin/startup.sh -m standalone
  7. ExecReload=/usr/local/nacos/bin/shutdown.sh
  8. ExecStop=/usr/local/nacos/bin/shutdown.sh
  9. PrivateTmp=true

  10. [Install]
  11. WantedBy=multi-user.target
其他的脚本类型的可以参考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. #重载服务单元
  2. systemctl daemon-reload  

  3. #启动redis服务
  4. systemctl start redis.service
  5. #设置开机自启动

  6. systemctl enable redis.service

  7. #停止开机自启动
  8. systemctl disable redis.service

  9. #查看服务当前状态
  10. systemctl status redis.service

  11. #重新启动服务
  12. systemctl restart redis.service 

  13. #查看所有已启动的服务
  14. 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. 添加脚本到开机自动启动项目中
  1. # 切换到这个目录下
  2. cd /etc/rc.d/init.d

  3. # 添加我们的脚本
  4. chkconfig --add startup.sh

  5. # 设置自启执行
  6. chkconfig startup.sh on
注意:所有需要执行的文件都需要授予执行权限
授权命令: chmod  +x  [脚本的绝对路径]