我正在尝试使用exec方法执行命令
proc3=Runtime.getRuntime().exec("umount "+m);
其中m是可变的,具有像/ mnt,/ media这样的目录位置 当我在命令提示符下执行命令时,它将按预期工作,但是使用java exec方法,它不能正常工作,给出退出状态2。 可能是什么原因?
答案 0 :(得分:1)
ProcessBuilder pb = new ProcessBuilder("umount",p1,p2);
pb.start();
您可以根据需要向ProcessBuilder的构造函数传递任意数量的参数。
PS:别忘了检查你的许可。
答案 1 :(得分:0)
你有两个选择。 1)使用su启动服务器/ servlet(不是理想选项)。 2)在umount上为启动servlet服务的用户提供sudo访问权限,以便它可以执行(可能需要密码)。你可能需要检查一下。
识别错误的步骤: 编写一个shell脚本,其中包含命令umount $ 1> out.log 2> out.err。这会将任何操作系统错误记录到一个文件中,从而进一步调试。