文章结构

  • Linux如何设置开机自启动
  • 方式1:如果是centos6就用chkconfig(推荐)
  • 方式2:如果是centos7就用systemctl(推荐)
  • 常见服务的开机自启动脚本
  • mysql服务
  • redis服务
  • nacos服务
  • setinal服务


Linux如何设置开机自启动

/etc/rc.local脚本中写启动命令,不推荐使用,可能无效,禁止使用禁止使用禁止使用!!!

方式1:如果是centos6就用chkconfig(推荐)

关于#chkconfig: 2345 20 80

  • 2345指服务运行级别,就固定为2345就好
  • 20是该程序开机的启动优先级,值越小越优先;80是关机时的优先级,值越小越先关闭;
    对于有依赖关系的服务注意设置该值。

使用步骤如下:

  1. 在/etc/init.d目录编写好脚本
cd /etc/init.d
vim redis

redis文件

#!/bin/sh
#chkconfig: 2345 80 90
#descriptiong: redis服务的自启动脚本
# 以上是脚本的头,下面写自己的内容
# See how we were called.
case "$1" in
    stop)
      /usr/local/scripts/redis_6379 stop
      ;;
    start)
      /usr/local/scripts/redis_6379 start
      ;;
    status)
      echo "请执行ps命令自行查看"
      ;;
    restart)
      /usr/local/scripts/redis_6379 stop
      /usr/local/scripts/redis_6379 start
      ;;
    *)
       echo $"Usage: $0 {start|stop|status|restart}"
      ;;
esac
  1. 加执行权限,测试
chmod 755 redis.sh
service redis stop
service redis start
service redis status
  1. 加入自启动
# 加入自启动列表
chkconfig --add redis
# 删除
chkconfig --del redis
# 开启
chkconfig redis on
# 查看
chkconfig --list

方式2:如果是centos7就用systemctl(推荐)

使用步骤如下:

  1. 进入/usr/lib/systemd/system目录
cd /usr/lib/systemd/system
  1. 创建脚本,如nacos.service文件
  2. 编写脚本文件(后面有示例)
  3. 先运行脚本测试
systemctl start nacos.service
  1. 设置开机自启动
systemctl enable nacos.service

关于systemclt命令的使用

查看服务状态
systemctl status nacos.service
启动服务
systemctl start nacos.service
停止服务s
systemctl stop nacos.service
设置开机自启动
systemctl enable nacos.service
禁止开机自启动
systemctl disable nacos.service

常见服务的开机自启动脚本

mysql服务

# 一般安装的mysql都有mysqld.service文件,直接设置开机自启动
systemctl enable mysqld.service

redis服务

cd /usr/lib/systemd/system
vim redis.service

redis.service文件

[Unit]
Description=redis
After=network.target

[Service]
Type=forking
ExecStart=/usr/local/scripts/redis_6379 start
ExecStop=/usr/local/scripts/redis_6379 stop
PrivateTmp=true

[Install]  
WantedBy=multi-user.target

nacos服务

cd /usr/lib/systemd/system
vim nacos.service

nacos.service文件

[Unit]
Description=nacos
After=network.target
# 设置在mysqld.service服务启动之后启动,因为nacos以来mysql来持久化
After=mysqld.service

[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

setinal服务

cd /usr/lib/systemd/system
vim sentinel.service

sentinel.service文件

[Unit]
Description=sentinel
After=network.target
# 在nacos服务之后启动
After=nacos.service

[Service]
Type=forking
ExecStart=/usr/local/scripts/sentinel.sh
ExecStop=/usr/local/scripts/sentinel_shutdown.sh
PrivateTmp=true

[Install]  
WantedBy=multi-user.targe