我不知道如何从Java后端执行sudo some.sh之类的命令。 sudo是无密码的。
我尝试了exec()和builder,但没有任何运气(见下文)。如果我尝试传递exec(“ sudo touch text.txt”);可以。
String[] cmdScript = new String[]{"/bin/bash", "/var/backup/dump/replication.sh"};
Process procScript = Runtime.getRuntime().exec(cmdScript);
有什么主意我可能做错了吗?
谢谢
答案 0 :(得分:0)
我的猜测是:
String[] cmdScript = new String[]{"/bin/bash", "sudo /var/backup/dump/replication.sh"};
或
String[] cmdScript = new String[]{"/bin/bash", "sudo", "/var/backup/dump/replication.sh"};
由于sudo通常需要密码,因此您可能需要将密码传递到其中。
String[] cmdScript = new String[]{"/bin/bash -c", "echo 'password' | sudo -S /var/backup/dump/replication.sh"};
这未经测试,但可以使您走上正确的道路。如果没有,看来here已经解决。