我正在编写一个Java应用程序以远程关闭Linux机器。

桌面应用程序坐下,等待命令发送给它。我尝试使用“shutdown -h”,但这需要sudo特权,而不是一个选择。然后,我找到了一种使用以下dbus-send解决方案不使用sudo进行关机的方法:

dbus-send --print-reply --system --dest=org.freedesktop.Hal /org/freedesktop/Hal/devices/computer org.freedesktop.Hal.Device.SystemPowerManagement.Shutdown

这可以正常工作,但我尝试使用dbus-send找出是否有可能像“shutdown 3600”这样的定时关机将在1小时内关闭计算机?

干杯

埃夫

最佳答案

您正在调用的函数HAL不提供此功能。但是,无论如何,如果您要启动外部命令,总是可以使用以下命令:

sh -c "sleep 1h; dbus-send --print-reply --system --dest=org.freedesktop.Hal /org/freedesktop/Hal/devices/computer org.freedesktop.Hal.Device.SystemPowerManagement.Shutdown"

关于使用dbus-send关闭Linux,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3696644/

10-12 18:41