macOS Login Items

Power Manager uses login items on macOS. Disabling any of these items will cause Power Manager to stop working as expected.

In macOS, you can find the settings for Login Items in the System Settings application:

Allow in the Background for Dragon Systems Software Limited must be enabled.

macOS: System Settings.app > General > Login Items

Power Manager’s login items are implemented as traditional launchd jobs. They are controlled by files placed in the /Library/LaunchAgents and /Library/LaunchDaemons folders. Power Manager launchd jobs begin with the prefix: uk.co.dssw.powermanager

Finding Problems

When problems arise with Login Items, be they launchd related or another mechanism, they are difficult to debug. Apple include the command line tool sfltool in macOS to aid their support engineers in debugging.

sfltool dumpbtm: Prints the current status of login and background items, including loaded servicemanagement payload UUIDs.

A diagnostic report can be created with the command:

sfltool dumpbtm

The format of the report will differ between computers and between versions of macOS.

With Power Manager installed, this report should show entries associated with our company name, Dragon Systems Software Limited and Apple assigned identifier QZLG4JVSEE.

Within these entries, note the Disposition. The entry will not work if disposition includes either:

Below is an extract showing some of Power Manager’s entries:

 #X:
                 UUID: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXX
                 Name: Power Manager
       Developer Name: Dragon Systems Software Limited
      Team Identifier: QZLG4JVSEE
                 Type: legacy agent (0x10008)
          Disposition: [enabled, allowed, visible, notified] (11)
           Identifier: uk.co.dssw.pmnotify
                  URL: file:///Library/LaunchAgents/uk.co.dssw.pmnotify.plist
      Executable Path: /Applications/Power Manager.app/Contents/Resources/Power Manager Notifications.app/Contents/MacOS/Power Manager Notifications
           Generation: 1
    Parent Identifier: Dragon Systems Software Limited

 #X+1:
                 UUID: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXY
                 Name: Power Manager
       Developer Name: Dragon Systems Software Limited
      Team Identifier: QZLG4JVSEE
                 Type: legacy agent (0x10008)
          Disposition: [enabled, allowed, visible, notified] (11)
           Identifier: uk.co.dssw.pmuser
                  URL: file:///Library/LaunchAgents/uk.co.dssw.pmuser.plist
      Executable Path: /Applications/Power Manager.app/Contents/Resources/uk.co.dssw.powermanager.pmuser
           Generation: 1
    Parent Identifier: Dragon Systems Software Limited

#X+2:
                 UUID: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXYY
                 Name: Power Manager.app
       Developer Name: Dragon Systems Software Limited
      Team Identifier: QZLG4JVSEE
                 Type: legacy daemon (0x10010)
          Disposition: [enabled, allowed, visible, notified] (11)
           Identifier: uk.co.dssw.powermanager.pmd
                  URL: file:///Library/LaunchDaemons/uk.co.dssw.powermanager.pmd.plist
      Executable Path: /Applications/Power Manager.app/Contents/Resources/uk.co.dssw.powermanager.pmd
           Generation: 1
    Parent Identifier: Dragon Systems Software Limited

Resetting the Background Task Management (BTM) Database on macOS

If an entry with the sfltool dumpbtm report includes conflicting disposition states, this suggests an underlying problem:

Within macOS it should not be possible to have an entry that is both enabled and disallowed. Unfortunately we have seen customers with this combination and have talked to Apple Developer Technical Support (DTS).

In this situation, the only option recommended was to rebuild the underlying task database:

  1. Open System Settings.app > General > Login Items;

  2. Record the items in the top list and which items are disabled in the bottom list;

  3. Run the following Terminal command:

    sfltool resetbtm
    
  4. Restart the computer;

  5. As macOS powers back on, the BTM database will be rebuilt;

  6. Open System Settings.app > General > Login Items and restore the settings from step 2.