我正在使用Java-7和进程构建器来使用Tomcat 7运行shell脚本。
processBuilder = new ProcessBuilder("/bin/bash", "/opt/script.sh");
processBuilder.start();
由于上面提到的代码是通过Tomcat7 Server托管的JSP页面调用的,所以命令运行但是进程无法继续,因为它是由tomcat7用户启动的(tomcat的默认用户)如何以root身份运行此命令,假设我知道root密码?
答案 0 :(得分:1)
使用sudo运行命令:
实际上,sudo允许用户以另一个用户身份运行程序(大多数用户) 通常是root用户)。
ProcessBuilder b = new ProcessBuilder("/bin/sh", "-c", "echo <password> | sudo -S /opt/script.sh");
b.start();