记一次systemd服务启动找不到Java命令

首先systemd服务文件
/etc/systemd/system/test.service(文件简化处理了)

[Unit]
Description=test
After=network.target
[Service]
ExecStart=/opt/test/bin/test_start.sh
[Install]
WantedBy=multi-user.target

其中启动命令ExecStart指向的是一个sh启动脚本,
脚本内就是简单的jar包启动命令 java -jar test.jar
然后执行启动命令:

sudo systemctl restart test.service

查看日志发现

3月 06 17:33:29 localhost.localdomain test.sh[8322]: /opt/cloud/bin/test_start.sh:行2: java: 未找到命令
3月 06 17:33:29 localhost.localdomain systemd[1]: test.service: Main process exited, code=exited, status=127/n/a
3月 06 17:33:29 localhost.localdomain systemd[1]: test.service: Failed with result 'exit-code'.

但是单独执行这个sh脚本是能找到java命令的

解决方案1:

在service文件中的==[service]==块添加java环境:

Environment=JAVA_HOME=/opt/jdk

解决方案2:

在sh脚本文件里面,添加环境变量信息(没有尝试,也是不推荐)

我这里有从别处转移的十几个servcie文件,不想一一修改,所以不采用这两个方案

在网上一顿摸索(可看最后的最终解决方案):
尝试1:
在 /etc/profile 或者 /etc/bashrc 中配置JAVA_HOME变量,这个是系统变量,在所有用户登陆的时候会加载进去,这样配置完java环境后,所有用户都能使用java命令,但是不适用Systemd
尝试2:
在 /etc/environment 配置PATH环境,也不行

最终解决方案

将java指令都添加到软连接

sudo ln -s /opt/jdks/jdk-11/bin/java /usr/bin/java
sudo ln -s /opt/jdks/jdk-11/bin/javac /usr/bin/javac
sudo ln -s /opt/jdks/jdk-11/bin/javadoc /usr/bin/javadoc
sudo ln -s /opt/jdks/jdk-11/bin/javap /usr/bin/javap

可去 /usr/bin里面确认下(可以看到已经添加成功了)

在这里插入图片描述

然后在启动服务就可以了

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

猜数字游戏(C语言)

一:游戏要求 1.电脑自动生成1~100随机数字 2.玩家猜数字,在猜数字过程中,根据猜数字的大小,根据猜数据的大小,给出大了还是小了的反馈,直到猜对游戏 二:随机数的生成 要完成猜数字游戏&…

7款前端实战型项目特效分享(附在线预览)

分享7款实用性的前端动画特效 其中有canvas特效、css动画、svg动画等等 下方效果图可能不是特别的生动 那么你可以点击在线预览进行查看相应的动画特效 同时也是可以下载该资源的 CSS春节灯笼特效 基于CSS实现的灯笼特效 灯笼会朝左右两个方向来回的摆动着 以下效果图只能体现…

rk3568 恢复出厂设置横屏

author daisy.skye的博客_CSDN博客-嵌入式,Qt,Linux领域博主 daisy.skye_嵌入式,Linux,Qt-CSDN博客daisy.skye擅长嵌入式,Linux,Qt,等方面的知识https://blog.csdn.net/qq_40715266?typeblog 在使用rk3568开发过程,虽然显示的方向已经改成了横屏,但是恢…

猫冻干价格差距大的原因是什么?价格合理、性价比高的生骨肉冻干分享

科学养猫知识的普及,铲屎官们逐渐意识到了生骨肉冻干喂养的益处。然而,价格因素仍是部分铲屎官的阻碍。实际上,像我这样的资深铲屎官,早已认识到生骨肉冻干的价值。虽然价格略高于烘焙粮和膨化粮,但其对猫咪的益处是实…

世界的本质是旋转(5)-在复平面上驱动软件无线电SDR发射BPSK波形

在上一篇文章中,我们介绍了复平面、拍照采样的一些思维实验。从本节开始,转入现实应用,通过控制复平面向量的位置,实现一个完整的BPSK全双工通信通道。 发射方:通过控制复平面向量在各个时刻的位置来携带信息的技术&a…

管道读写规则及 PIPE_BUF 涉及的写原子性问题

结论: 一、当管道内没有数据可读时 O_NONBLOCK disable:read 调用阻塞,直到有可读数据 O_NONBLOCK enable: read 调用返回 -1,errno 值为 EAGAIN 二、当管道已满或者剩余空间不够时 O_NONBLOCK disable:wr…

Vue时间轴

之前有这样子的需求没有用第三方插件于是自己写一个简单的时间轴 时间轴滚动条并左右切换滚动条位置相对应移动 <div class"time-scrollbar"><div v-if"timeLineData.length>0" class"scrollbar-content"><div class"ar…

vue3的基本使用(1)

Vue3的基本使用&#xff08;1&#xff09; 初识vue31. vue3简介2. 性能提升3. 源码升级 Vue3的创建1. vue-cli创建2. vite创建 Composition API的区别&#xff08;组合式&#xff09;setup函数响应式数据1. ref响应式2. reactive响应式 toRefs与toRef简单介绍 初识vue3 1. vue…

Vue系列-环境快速搭建

vue环境快速搭建 演示视频 快速搭建Vue开发环境pnpm和yarn 1. 基本信息 作者: GMCY系列: Vue仓库: GitHub | Gitee话题(GitHub): tools \ vue创建时间: 2024/03/02 2. 介绍 功能 批处理文件vue 环境的快速搭建nodejs, npm, pnpm, yarn 自动 下载安装npm, pnpm, yarn 自动 …

CVE-2024-27198 JetBrains TeamCity 身份验证绕过漏洞分析

漏洞简介 JetBrains TeamCity 是一款由 JetBrains 公司开发的持续集成和持续交付服务器。它提供了强大的功能和工具&#xff0c;旨在帮助开发团队构建、测试和部署他们的软件项目 JetBrains TeamCity发布新版本修复了两个高危漏洞JetBrains TeamCity 身份验证绕过漏洞(CVE-20…

企智汇:引领企业项目管理的数字智能化管理系统工具!

随着数字化时代的来临&#xff0c;企业对项目管理的要求也日益增高。面对日益复杂的业务流程和海量数据&#xff0c;如何有效地管理项目、整合资源、优化流程、提高管理效率&#xff0c;成为了摆在企业面前的重要课题。在这样的背景下&#xff0c;专业做了10年项目管理系统的&a…

vsphere虚拟机迁移是灰色如何解决

vsphere虚拟机迁移是灰色如何解决 问题描述&#xff1a; 在vsphere中&#xff0c;迁移虚拟机时迁移按钮是灰色&#xff0c;无法迁移&#xff0c;关机之后也无法迁移 虚拟机按钮为灰色 找到虚拟机存储对应的位置&#xff0c;查询是否有.vmx虚拟机文件 查询中发现有.vmx文件存…