【问题标题】:How to run sudo poweroff in java如何在 Java 中运行 sudo poweroff
【发布时间】:2016-08-03 23:29:14
【问题描述】:

我是一名 jsp 开发人员。有时,当键盘停止响应输入时,我需要关闭我的缓慢、无响应、滞后的(你明白了)开发 ubuntu“服务器”。我已经正确配置了tomcat,即使我的键盘停止响应,我也可以将它用作服务器(访问由tomcat提供的网页)。我的想法是制作一个调用sudo poweroff 的jsp 页面。但我不知道该怎么做。我试过了

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

但这对我不起作用。我已经编辑了 sudoers 文件以允许 tomcat 用户执行此操作而无需密码。我怎样才能做到这一点?

【问题讨论】:

  • 这可能会对 Runtime.exec(): stackoverflow.com/questions/8877236/… 有所帮助。如果你需要sudo,你可以编写一个setuid root 调用poweroff 的C 程序。
  • 你不能这样做。这是不可能的
  • 这是一个糟糕的主意,但你想要sudo /sbin/shutdown -h now。安装 openssh-server 并使用远程 ssh 将其关闭可能会更好。
  • @ElliottFrisch 这只是我的开发服务器。它显然不会在生产中使用。但是我可以sudo /shin/poweroff 吗?只是想知道....
  • 试试看,自己看看。如果答案不是,请继续尝试

标签: java jsp sudo runtime.exec power-off


【解决方案1】:

如果运行 tomcat 的用户有 sudo perms(没有密码),它应该是可行的 - 但调用应该是这样的:

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

命令和参数不能全部传入一个大字符串。

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

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

【讨论】:

  • java 文档也有 this method 所以你的答案是不正确的,至少根据你给出的推理
  • 你试过了吗?您指的方法是针对不带参数的命令。
猜你喜欢
  • 2016-09-20
  • 2020-05-15
  • 1970-01-01
  • 1970-01-01
  • 2011-01-29
  • 2016-10-17
  • 1970-01-01
  • 2019-08-20
  • 2019-12-02
相关资源
最近更新 更多