部署问题集合(十九)linux设置Tomcat、Docker,以及使用脚本开机自启(亲测)

前言

  • 因为不想每次启动虚拟机都要手动启动一遍这些东西,所以想要设置成开机自启的状态

设置Tomcat开机自启

  • 创建service文件
shell 复制代码
vi /etc/systemd/system/tomcat.service
  • 添加如下内容,注意修改启动脚本和关闭脚本的地址
shell 复制代码
[Unit]
Description=Tomcat9068
After=syslog.target network.target remote-fs.target nss-lookup.target

[Service]
Type=oneshot
ExecStart=/usr/local/tomcat/bin/startup.sh
ExecStop=/usr/local/tomcat/bin/shutdown.sh
ExecReload=/bin/kill -s HUP $MAINPID
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target
  • 进入目录:cd /etc/systemd/system/
  • 设置开机自启:systemctl enable tomcat
  • 重新载入配置文件,使设置生效:systemctl daemon-reload
  • 重新启动看看效果:reboot(如果不能随便重启先别急哈哈)

设置Docker开机自启

  • 查看已启动的服务:systemctl list-units --type=service
  • 查看服务是否开机自启:systemctl list-unit-files | grep enable
  • 设置开机自启:systemctl enable docker.service

设置Docker容器开机自启

  • Docker容器启动时添加:--restart=always
  • 添加位置取决于你是通过命令启动还是Dockerfile或其他脚本
  • 若是已经启动的容器,通过updata进行更新:docker update --restart=always 容器id或name

使用脚本开机自启

  • 方法一:使用crontab启动脚本
shell 复制代码
#编辑定时任务
crontab -e
#添加如下内容,@reboot表示开机时执行
@reboot /home/evsoft/everyDayStart.sh
  • 方法二:使用systemd服务
shell 复制代码
#添加service文件
vi /etc/systemd/system/everyDayStart.service

#添加如下内容
[Unit]
Description=everyDayStart
After=default.target
 
[Service]
ExecStart=/home/evsoft/everyDayStart.sh
 
[Install]
WantedBy=default.target

#重新载入配置文件,使设置生效:
systemctl daemon-reload

#设置开机自启:
systemctl enable everyDayStart
  • 此时systemctl start everyDayStart.service可能会报错
    • 解决方案:
    • 在自定义脚本everyStartDay.sh的开头加上#!/bin/sh
    • 或缺少执行权限chmod +x everyStartDay.sh
    • 或编码格式错误,通过:set ff查看编码格式,并通过:set ff=unix修改编码格式

参考

相关推荐
小江的记录本9 分钟前
【RabbitMQ】RabbitMQ核心知识体系全解(5大核心模块:Exchange类型、消息确认机制、死信队列、延迟队列、镜像队列)
java·前端·分布式·后端·spring·rabbitmq·mvc
!停14 分钟前
C++入门—内存管理
java·jvm·c++
海参崴-18 分钟前
C语言与C++语言发展历史详解
java·c语言·c++
无尽的罚坐人生21 分钟前
hot 100 146. LRU 缓存
java·开发语言·缓存
好家伙VCC22 分钟前
**发散创新:基于算子融合的深度学习推理优化实战**在现代AI部署场景
java·人工智能·python·深度学习
wd5i8kA8i25 分钟前
OpenSwoole 26.2.0 发布:支持 PHP 8.5、io_uring 后端及协程调试改进
java·开发语言·php
却话巴山夜雨时i29 分钟前
Java大厂面试:从Spring Boot到微服务的深度剖析
java·spring boot·spring cloud·微服务·分布式事务·大厂面试
希望永不加班33 分钟前
SpringBoot 缓存注解:@Cacheable/@CacheEvict 使用
java·spring boot·spring·缓存·mybatis
KhalilRuan39 分钟前
HybridCLR的底层原理
java·开发语言
源码站~42 分钟前
基于Spring Boot+Vue3的烹饪交流学习系统 设计与实现
java·vue.js·spring boot·后端·mysql·毕业设计·毕设