Java项目在Linux系统下设置开机自启动

首先我们新建一个文件,写好自己的自启脚本

#!/bin/bash
# 关闭防火墙(建议仅在测试环境使用)
systemctl stop firewalld.service || echo "防火墙关闭失败"

# 启动 MySQL
systemctl start mysqld.service || echo "MySQL 启动失败"

# 启动 Nginx
if [ -x /usr/local/nginx/sbin/nginx ]; then
    /usr/local/nginx/sbin/nginx || echo "Nginx 启动失败"
else
    echo "Nginx 可执行文件不存在"
fi

# 启动 Redis
nohup /usr/local/bin/redis-server > /var/log/redis.log 2>&1 &
echo "Redis 已启动 (PID: $!)"

# 启动 Minio
nohup /mnt/minio server /mnt/service/data > /var/log/minio.log 2>&1 &
echo "Minio 已启动 (PID: $!)"

# 启动 Java 应用
nohup java -jar yourService.jar > /var/log/ruoyi-admin.log 2>&1 &  #这里填写你自己的jar包路径
echo "Java 应用 ruoyi-admin 启动完成 (PID: $!)"

exit 0

然后执行sudo nano /etc/systemd/system/startup.service命令,创建文件
在文件中复制以下代码(根据自己的需求改)

[Unit]
Description=Custom Startup Script
After=network-online.target
Wants=network-online.target

[Service]
ExecStart=/bin/bash /path/to/your_script.sh
Restart=on-failure
RestartSec=5s
User=root
StandardOutput=append:/var/log/startup.log
StandardError=append:/var/log/startup_error.log

[Install]
WantedBy=multi-user.target

说明
1.ExecStart=/bin/bash /path/to/your_script.sh是你自己的shell脚本路径
2.因为我们是web服务器,一般有Nginx和Redis所以要在网络初始化完毕network-online.target再加载脚本
3.WantedBy=multi-user.target这个的意思是在多用户环境下启动脚本,如果配置好后没有成功运行,建议
检查自己是那种环境,查看命令systemctl get-default
4.日志文件StandardOutput=append:/var/log/startup.logStandardError=append:/var/log/startup_error.log
并不会自己创建,需要自己手动创建一个日志文件。


创建好startup.service文件之后按顺序执行一下命令

  sudo systemctl daemon-reload  # 重新加载 systemd 配置
  sudo systemctl enable taskStart.service  # 设为开机自启
  sudo systemctl start taskStart.service  # 立即启动服务
  sudo systemctl status taskStart.service  # 查看服务状态

最后:
如果没有成功启动可以执行sudo journalctl -xe -u taskStart.service查看日志,分析原因
重启命令 sudo systemctl restart taskStart.service # 重启服务

posted @   四季山川  阅读(29)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 【.NET】调用本地 Deepseek 模型
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· DeepSeek “源神”启动!「GitHub 热点速览」
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
· 我与微信审核的“相爱相杀”看个人小程序副业

阅读目录(Content)

此页目录为空

点击右上角即可分享
微信分享提示