(1)首先要将需要自启的软件或应用注册成系统服务,下面提供常用的软件注册系统服务的案例
创建服务文件
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
Description -描述服务
After -描述服务类别
[Service] -服务运行参数的设置
Type=forking -是后台运行的形式
ExecStart -为服务的具体运行命令
ExecReload -为重启命令
ExecStop -为停止命令
PrivateTmp=True - 表示给服务分配独立的临时空间
注意:[Service]的启动、重启、停止命令全部要求使用绝对路径
[Install] -运行级别下服务安装的相关设置,可设置为多用户,即系统运行级别为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
# 创建脚本
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
编辑自启的系统文件
# /etc/rc.d/rc.local 这个文件是系统自带的启动文件
vi /etc/rc.d/rc.local
添加下面我们要自启的脚本
/home/myShell/startup.sh
chmod +x /etc/rc.d/rc.local
# 切换到这个目录下
cd /etc/rc.d/init.d
# 添加我们的脚本
chkconfig --add startup.sh
# 设置自启执行
chkconfig startup.sh on
授权命令: chmod +x [脚本的绝对路径]