2010-09-12 36 views
4

J'écris une application Java pour éteindre ma machine Linux à distance.Linux Shutdown avec dbus-send

L'application de bureau se trouve et attend qu'une commande lui soit envoyée. J'ai essayé d'employer "shutdown -h" mais ceci exige des privilèges de sudo et n'est pas une option. Je me suis alors trouvé un moyen d'arrêter sans sudo en utilisant la solution dbus-send suivante:

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

Cela fonctionne bien, mais je suis en train de comprendre, en utilisant dbus-send, s'il est possible de faire un arrêt chronométré semblable à "shutdown 3600" qui éteindrait l'ordinateur en 1 heure?

Vive

Eef

Répondre

7

HAL, dont la fonction que vous appelez, ne fournit pas cette fonctionnalité. Mais vous pouvez toujours aller avec quelque chose comme ça, si vous lancez une commande externe quand même:

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