2016-08-03 31 views
0

我是一名jsp开发人员。当它的键盘停止响应输入时,我需要关闭我的缓慢,反应迟钝,迟缓,(你明白了)开发Ubuntu的“服务器”。我已经正确配置了tomcat,即使当我的键盘停止响应时,我也可以将它用作服务器(访问由tomcat提供的网页)。我的想法是创建一个名为sudo poweroff的jsp页面。但我不知道该怎么做。我试过如何在java中运行sudo poweroff

Runtime.getRuntime.exec("sudo poweroff"); 

但它不适用于我。我已经编辑了sudoers文件以允许tomcat用户在不需要密码的情况下执行此操作。我怎样才能做到这一点?

+0

这可能会帮助您Runtime.exec():http://stackoverflow.com/questions/8877236/unable-to-execute-java-program-from-jsp-using-runtime-getruntime-exec。如果你需要sudo,你可以编写一个C程序,它是setuid root,用于调用poweroff。 – user3486184

+0

你不能这样做。这是不可能的 – Turtle

+0

这是一个可怕的想法,但你想'sudo/sbin/shutdown -h now'。安装openssh-server并使用远程ssh关闭它可能会更好。 –

回答

2

如果用户运行Tomcat有须藤烫发(W/OA密码),它应该是可行的 - 但电话应该是这样的:

Runtime.getRuntime().exec(new String[]{"sudo", "poweroff"});

的命令和参数不能全部通过一个大字符串传递。

检查出文档的更多信息:https://docs.oracle.com/javase/7/docs/api/java/lang/Runtime.html#exec(java.lang.String[])

PS:这可能是一个坏主意。 :)

+0

java文档也有[此方法](https://docs.oracle.com/javase/7/docs/api/java/lang/Runtime.html#exec(java.lang.String)),所以你的答案是不正确,至少根据你给出的推理 – vikarjramun

+0

你试过了吗?您引用的方法是针对不带参数的命令。 – Larry