找不到Synology Scheduler .sh Java命令

问题描述 投票:3回答:1

我有一个bash脚本,唯一的任务就是执行一个jar文件。

sms.sh

java -jar /volume1/homes/jar/smssender.jar

使用Synology NAS设置任务。

Task Setup run by root

添加执行bash脚本的命令。正在添加日志输出。

enter image description here

执行我的新任务。

enter image description here

正在检查日志以查看以下错误:

/ volume1 / homes / jar / sms.sh:第1行:java:未找到命令

正在检查Java版本/安装:

enter image description here

手动检查sh脚本的执行(有效):

enter image description here

有人遇到同样的奇怪情况吗?任何解决方法/想法?

我尝试过

  • 重新启动我的NAS
  • 卸载/安装Java8软件包

但无济于事。

java bash synology
1个回答
0
投票

我对Synology不熟悉,所以... ...>

Shell脚本在命令行执行时有效,因为特定的登录会话已经加载了一组环境变量(例如,在登录主目录中的.profile/.bashrc脚本后,会获得源代码,并且各种Java-加载了特定的环境变量-PATH, JAVA_HOME, CLASSPATH等),这些变量允许java和脚本正常运行。

失败的Synology作业错误表示尚未加载特定于Java的环境变量,因此作业/脚本无法找到java

假设Synology没有配置设置/标志来预加载登录信息,那么“简单”的解决方案是编辑脚本(sms.sh)并在执行之前提供适当的资源文件任何操作(例如,调用java)。一个简单的例子:

$cat sms.sh
#!/usr/bin/bash

. ~root/.bashrc      # load the root account profile before continuing ...

java ...

NOTES

  • 用要运行脚本的登录名替换root(在示例Synology图像中,似乎您选择了root用户,因此我的示例引用了~root
  • ~root/.bashrc替换为用户配置文件的路径,以预加载允许脚本查找java所需的环境变量”>
© www.soinside.com 2019 - 2024. All rights reserved.