Python utility to wake up(wol) and suspend Linux machines remotely

powertool, remote, suspend, tools, utility, wake-on-lan, wakeonlan
pip install powertool==0.3.0



https://coveralls.io/repos/github/raghur/powertool/badge.svg?branch=master https://travis-ci.org/raghur/powertool.svg?branch=master Documentation Status Updates

Python utility to wake up(wol) and suspend Linux machines remotely

  • Free software: MIT license


  • Wake up remote machines using hostname/ip.
  • Suspend remote machines using hostname

Wake on lan (WOL)

Wake up feature uses WOL magic packet. Since mac addresses are hard to remember/use, this tool lets you wake up or suspend machines by their name or IP.

  1. First register your machines

    powertool register -b aa:bb:cc:dd:ee:ff you@host
    • -b Broadcast_IP - this is the subnet on which your machine's ip is. If your machine's ip is 192.168.1.xxx, then this is
    • aa:bb:cc:dd:ee:ff - your machines' mac address. You can find this on your machine or on the router's device list.
    • you@host - your username on the remote host - this is used by the sleep function to do a passwordless ssh and run pm-suspend.
  2. register saves machine details so that you can later do this:

    powertool wol host
    powertool sleep host
  3. register just saves machine details to a ~/.powertool as a json file.


Sleep/suspend feature has quite a few dependencies

  • you should have password-less ssh to the remote host. There are a lot of guides on the internet on how to set this up - like this one http://www.linuxproblem.org/art_9.html. Verify that it works by running ssh user@host - you should not be prompted for a password.

  • You should have pm-utils package on your remote machine http://manpages.ubuntu.com/manpages/precise/man8/pm-action.8.html

  • Your user should be able to run sudo pm-suspend without being prompted for password. To set this up, login to the remote machine and do the following:

    sudo visudo
    # add the following - where user is your username on the remote machine
    user ALL=(ALL) NOPASSWD: /usr/sbin/pm-suspend


This package was created with Cookiecutter and the audreyr/cookiecutter-pypackage project template.