从 Java 应用程序关闭 PC

从 Java 应用程序关闭 PC

我正在尝试使用 Java 应用程序关闭我的 Ubuntu PC,但似乎什么也没发生。以下是我的代码:

Runtime runtime = Runtime.getRuntime();

try {
   Process proc = runtime.exec("sudo shutdown -h now");
}    
catch (IOException e) {
   e.printStackTrace();
}

我错过了什么?

答案1

为了避免sudo要求输入密码,sudoers请使用以下命令编辑文件visudo

sudo visudo -f /etc/sudoers.d/shutdown

/etc/sudoers.d/这将在包含的目录中创建一个新文件,而原始sudoers文件保持完整。

如果您的用户被呼叫myuser并且您的主机被呼叫myhost您可以添加以下行

myuser myhost = (root) NOPASSWD: /sbin/shutdown
myuser myhost = (root) NOPASSWD: /sbin/reboot

保存您的更改并尝试一下。

此外,您不应该e.printStackTrace()只使用记录器。

相关内容