我有一个java应用程序。
我需要从此应用程序启动脚本。
如果我执行命令直接在终端中启动脚本,我会得到期望的结果,如:
root@host [ ~ ]# docker exec -it mycontainer bash
root [ /mycontainer ]# nsenter -t 1 -m -u -n -i sh /gg/my.sh -c telegraf -a status
status #some custom output from the script
telegraf
**************
207
如果我从java应用程序启动完全相同的东西,我不会得到正确的结果(结果就像我在容器中执行脚本一样。)java代码:
String command = "nsenter -t 1 -m -u -n -i sh /gg/my.sh -a " + action + " -c " + name;
Process ps = Runtime.getRuntime().exec(command);
...
log.info(psOutput)
日志:
not found
**************
not implemented.
完整背景:
java应用程序位于docker容器中
我需要在主机上运行脚本
是的,我知道。。处理隔离和docker容器等,有时您只需从容器在主机上触发一组命令的执行。接下来,我触发从容器到主机的脚本执行。
有人能给我解释一下原因吗?当我从java应用程序执行命令时,会发生什么?为什么感觉从java应用程序启动的流程可能被另一个流程 Package 了呢?
暂无答案!
目前还没有任何答案,快来回答吧!