/d-6ren">
gpt4 book ai didi

java - ProcessBuilder(Java)-创建cronjob

转载 作者:行者123 更新时间:2023-12-01 17:59:36 26 4
gpt4 key购买 nike

我尝试使用ProcessBuilder通过Java代码创建cronjob,
但是命令执行返回退出代码-1。
我使用的命令是以下命令:

"sudo su root -c (crontab -l 2>/dev/null; echo \"*/15 * * * * /test/scripts/a_script.sh\") | crontab - && echo OK || echo FAILED"


通常,我使用的代码会成功执行其他命令。

有人对这个问题有任何想法吗?谢谢

(我发现一个相对的问题,没有答案)

最佳答案

看起来这里的问题是您的命令仅在从/ bin / ksh,/ bin / bash或/ bin / sh之类的shell中运行时才有效。 Java不解释管道或子命令()信息。

您的Java命令应确保首先运行所选的SHELL,并将实际命令作为参数传递给该外壳。我不确定您使用的是什么-暂时没有使用Linux-但BASH命令类似于:

/bin/bash -c "sudo (blah | blah)"


在Windows上,您会看到类似的问题-Java可以运行“ cmd.exe / c dir”,但不会自行启动“ dir”。

为了便于维护,最好将sudo命令打包到其自己的script.sh中(第一行!/ bin / sh或其他内容),并仅从Java调用该脚本,然后可以更改该命令而无需重新编译Java启动器。

关于java - ProcessBuilder(Java)-创建cronjob,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60659784/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com