title: How to monitor usb devices insertion?
body: <p>I am trying to monitor for USB devices when they get plugged in.
  A couple of test scripts fail that I am pretty sure should have worked.</p>
  <pre><code>import pyudev
  
  context = pyudev.Context()
  monitor = pyudev.Monitor.from_netlink(context)
  monitor.filter_by(subsystem='usb')
  
  for device in iter(monitor.poll, None):
      if device.action == 'add':
          print('{} connected'.format(device))
  </code></pre>
  <p>^^Does nothing. No error, no output.</p>
  <p>I try</p>
  <pre><code>import dbus
  bus = dbus.SystemBus()
  obj = bus.get_object('org.freedesktop.NetworkManager', '/org/freedesktop/NetworkManager')
  obj.GetDevices()
  </code></pre>
  <p>output the following error:</p>
  <pre><code>Traceback (most recent call last):
    File &quot;crap.py&quot;, line 4, in &lt;module&gt;
      obj.GetDevices()
    File &quot;/usr/lib/python3/dist-packages/dbus/proxies.py&quot;, line 70, in __call__
      return self._proxy_method(*args, **keywords)
    File &quot;/usr/lib/python3/dist-packages/dbus/proxies.py&quot;, line 145, in __call__
      **keywords)
    File &quot;/usr/lib/python3/dist-packages/dbus/connection.py&quot;, line 651, in call_blocking
      message, timeout)
  dbus.exceptions.DBusException: org.freedesktop.DBus.Error.UnknownMethod: No such interface '(null)' on object at path /org/freedesktop/NetworkManager
  </code></pre>
  <p>dbus blocks me on both Linux Mint and a Pi3</p>
  <p>How do I monitor for USB devices in python3?</p>