我正在尝试使用 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()
只使用记录器。