流程(从容器中的java开始)在哪里执行?

5gfr0r5j  于 2021-08-25  发布在  Java
关注(0)|答案(0)|浏览(199)

我有一个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 了呢?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题