【发布时间】:2015-12-14 21:09:08
【问题描述】:
我想切换用户,然后在新用户下启动命令。 其实我的代码是
String[] commandToRun2 = {"su","-","jboss", "./jboss-cli.sh -c :shutdown(restart=true)"};
ProcessBuilder pb = new ProcessBuilder(commandToRun2);
pb.directory(new File("/home/jboss/soft/jboss-as-7.1.1.Final/bin/"));
Process p = pb.start();
但我不能让它工作。
【问题讨论】:
-
它到底是怎么不工作的?日志中有异常吗?
-
无异常,只是正常结束进程,没有正确执行命令。在 root 下使用相同的命令(没有 su)可以正常工作。
-
您是否手动测试了您的
su命令?您是否从与测试su相同的用户启动您的 java 应用程序? -
是的,我做到了。我有 2 个 Jboss 实例,1 个在“root”用户下,另一个在“jboss”用户下。我需要使用“su”命令在 jboss 下启动应用程序。
-
如果你
Thread.sleep1 分钟给创建的进程一些时间呢?
标签: java linux processbuilder