linux(centos7)开机自启jar文件

问题

之前参考网上说的直接在/etc/rc.local文件中增加sh文件启动语句,但是没有效果:

/root/dashboard/dashboard_backend/start_dashboard.sh

权限也增加了,还是不行:

chmod +x /etc/rc.local

排查

排查了一下:

查看系统日志/var/log/root.log,发现rc.local执行了。所以但是执行情况不在这。所以去另一个文件中查看“/var/log/messages”,发现了问题,报错说“./”不识别

rc.local: Error: Unable to access jarfile ./*.jar

我的sh文件中的语句:

 其中最后一句 nohup 时候使用的是“java -jar ./*.jar”,所以识别成了rc.local所在目录,而不是start_dashboard.sh文件所在目录

#!/bin/bash

pid=`ps aux|grep java | grep -E dashboard_backend.* |grep -v grep|awk '{print $2}'`
kill -9 $pid
# java -jar ./dashboard_backend-0.0.1-SNAPSHOT-plus.jar --spring.profiles.active=prod > ./nohup.log &
nohup java -jar ./*.jar --spring.profiles.active=prod &

解决

所以,采用的方法是先cd进入到目标sh文件所在目录,然后再执行sh文件。rc.local文件中增加如下语句:

cd /root/dashboard/dashboard_backend && ./start_dashboard.sh

完整解决方案

1. 赋执行权限:/etc/rc.local

chmod +x /etc/rc.local

 2.编辑 /etc/rc.local:

#开机启动nginx
/usr/local/nginx/sbin/nginx


# 因为reboot自启动rc.local执行在环境变量加载之前,所以需要在这里先指定java路径,再启动jar,否则报错“找不到java”
JAVA_HOME=/usr/local/java/jdk1.8.0_271
PATH=/usr/local/nginx/sbin:$JAVA_HOME/bin/:/usr/local/bin:$PATH
#PATH=/usr/local/nginx/sbin:$JAVA_HOME/bin/:$PATH
export JAVA_HOME PATH

# 这里需要进入文件夹所在目录,否则sh文件中的“./”路径识别错误
# /root/dashboard/dashboard_backend/start_dashboard.sh
cd /root/dashboard/dashboard_backend && ./start_dashboard.sh

3.重启

reboot

4.查看

jps

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/677369.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

基于聚类和回归分析方法探究蓝莓产量影响因素与预测模型研究附录

🌟欢迎来到 我的博客 —— 探索技术的无限可能! 🌟博客的简介(文章目录) 目录 背景数据说明数据来源思考 附录数据预处理导入包以及数据读取数据预览数据处理 相关性分析聚类分析数据处理确定聚类数建立k均值聚类模型 …

FFmpeg播放器的相关概念【1】

播放器框架 相关术语 •容器/文件(Conainer/File):即特定格式的多媒体文件,比如mp4、flv、mkv等。 • 媒体流(Stream):表示时间轴上的一段连续数据,如一段声音数据、一段…

BIOS主板(非UEFI)安装fedora40的方法

BIOS主板(非UEFI)安装fedora40的方法 现实困难:将Fedora-Workstation-Live-x86_64-40-1.14.iso写入U盘制作成可启动U盘启动fedora40,按照向导将fedora40安装到真机的sda7分区中得到报错如下内容: Failed to find a suitable stage1 device: E…

氯气安全阀检测流程揭秘:保障化工安全新举措

在化工行业中,氯气作为一种重要的工业原料,广泛应用于多个生产领域。 然而,氯气的危险性也不容忽视,一旦发生泄漏或超压等安全事故,后果不堪设想。因此,氯气安全阀的重要性便显得尤为突出。 在这篇文章中…

WindowManager相关容器类

窗口中容器类介绍&#xff1a; 本节内容较多&#xff0c;建议结合前面的内容一起阅读&#xff1a; 1、addWindow的宏观概念 2、WindowManager#addView_1 3、WindowManager#addView_2 1&#xff09;、WindowContainer&#xff1a; class WindowContainer<E extends WindowC…

Python编程基础2

文件对象&#xff1a; open内建函数&#xff1a;通过了初始化输入、输出&#xff08;I/O&#xff09;操作的通用接口&#xff0c;成功打开文件后会返回一个文件对象&#xff0c;否则引发错误。file_objectopen&#xff08;file_name&#xff0c;mode‘r’&#xff09;:file_nam…

一款仅200kb好看的免费引导页源码

源码介绍: 这是一款200kb左右的引导页,超级好看,用服务器或者主机均可搭建 下载压缩包解压至根目录即可&#xff0c;页面内容在index.html里修改 左边图片采用的是API接口&#xff08;不喜欢可以自行更换,在66/67行&#xff09; 引导页压缩包放在下面了,有需要的朋友可以直接下…

【热点】老黄粉碎摩尔定律被,量产Blackwell解决ChatGPT耗电难题

6月3日&#xff0c;老黄又高调向全世界秀了一把&#xff1a;已经量产的Blackwell&#xff0c;8年内将把1.8万亿参数GPT-4的训练能耗狂砍到1/350&#xff1b; 英伟达惊人的产品迭代&#xff0c;直接原地冲破摩尔定律&#xff1b;Blackwell的后三代路线图&#xff0c;也一口气被…

杂谈k8s

其实看我之前的博客&#xff0c;k8s刚有点苗头的时候我就研究过&#xff0c;然后工作的时候间接接触 也自己玩过 但是用的不多就忘记了&#xff0c;正苦于不知道写什么&#xff0c;水一篇 简化容器应用程序的部署和管理 自动化部署、自动伸缩、负载均衡、存储管理、自我修复 支…

DP-Kmaens密度峰值聚类算法

我有个问题 关于 [密度值>密度阈值] 的判定这里&#xff0c;新进来的新数据怎么确定他的密度值&#xff1f;密度阈值又是怎样确定的呢&#xff1f;

Golang | Leetcode Golang题解之第129题求根节点到叶节点数字之和

题目&#xff1a; 题解&#xff1a; type pair struct {node *TreeNodenum int }func sumNumbers(root *TreeNode) (sum int) {if root nil {return}queue : []pair{{root, root.Val}}for len(queue) > 0 {p : queue[0]queue queue[1:]left, right, num : p.node.Left, …

RPM包方式离线部署gitlab

下载安装包 要求&#xff1a;可以联网&#xff0c;系统及版本与目标服务器一致。配置gitlab yum仓库 curl -s https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash 新建包存放目录 mkdir /root/gitlab 下载gitlab及相关安装包 …

Linux之线程及线程安全详解

前言&#xff1a;在操作系统中&#xff0c;进程是资源分配的基本单位&#xff0c;那么线程是什么呢&#xff1f;线程是调度的基本单位&#xff0c;我们该怎么理解呢&#xff1f; 目录 一&#xff0c;线程概念理解 二&#xff0c;Linux里面的线程原理 三&#xff0c;为什么要…

《MySQL索引》学习笔记

《MySQL索引》学习笔记 MySQL的体系结构存储引擎简介InnoDB简介MyISAM简介 索引索引结构BTreeHash索引思考索引分类 索引语法SQL性能分析索引使用最左前缀法则 索引失效的情况范围查询索引列运算字符串不加引号模糊查询or连接的条件数据分布影响 SQL提示覆盖索引前缀索引单列索…

【MyBatisPlus】DML编程控制

【MyBatisPlus】DML编程控制 文章目录 【MyBatisPlus】DML编程控制1、id生成策略2、逻辑删除 1、id生成策略 id生成策略控制&#xff08;TableId注解&#xff09; 名称&#xff1a;TableId 类型&#xff1a;属性注解 位置&#xff1a;模型类中用于表示主键的属性定义上方 作…

机器学习中的集成学习

&#x1f4ac;内容概要 1 集成学习概述及主要研究领域 2 简单集成技术  2.1 投票法  2.2 平均法  2.3 加权平均 3 高级集成技术  3.1 Bagging  3.2 Boosting  3.3 Bagging vs Boosting 4 基于Bagging和Boosting的机器学习算法  4.1 sklearn中的Bagging算法  4.2 sklea…

AI大模型探索之路-实战篇15: Agent智能数据分析平台之整合封装Tools和Memory功能代码

系列篇章&#x1f4a5; AI大模型探索之路-实战篇4&#xff1a;深入DB-GPT数据应用开发框架调研 AI大模型探索之路-实战篇5&#xff1a;探索Open Interpreter开放代码解释器调研 AI大模型探索之路-实战篇6&#xff1a;掌握Function Calling的详细流程 AI大模型探索之路-实战篇7…

C++基础-vector容器

目录 零. 前言: 一.简介 二. 主要特点 三. 例子 1.创建 2.添加元素 3.访问元素 4.获取大小 5.删除元素 6.扩展 begin() end() 零. 前言: 在编程中&#xff0c;数组通常具有固定的大小&#xff0c;这在某些情况下可能会带来一些限制。 当我们事先无法确切知道需要存…

topK 问题

topK 问题 topK二、实验内容三、数据结构设计四、算法设计五、运行结果六、程序源码 topK &#xff08;1&#xff09;实验题目 topK 问题 &#xff08;2&#xff09;问题描述 从大批量数据序列中寻找最大的前 k 个数据&#xff0c;比如从 10 万个数据中&#xff0c;寻找最大的…

leetcode155 最小栈

题目 设计一个支持 push &#xff0c;pop &#xff0c;top 操作&#xff0c;并能在常数时间内检索到最小元素的栈。 实现 MinStack 类: MinStack() 初始化堆栈对象。void push(int val) 将元素val推入堆栈。void pop() 删除堆栈顶部的元素。int top() 获取堆栈顶部的元素。i…