![从 Java 应用程序关闭 PC](https://linux22.com/image/846566/%E4%BB%8E%20Java%20%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E5%85%B3%E9%97%AD%20PC.png)
我正在尝试使用 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()
只使用记录器。