Is there a way to make launchd stop a service on sleep and start it up again on wake?
You can use SleepWatcher:


  It can be used to execute a Unix command when the Mac or the display of the Mac goes to sleep mode or wakes up, after a given time without user interaction or when the user resumes activity after a break or when the power supply of a Mac notebook is attached or detached.


Run launchctl load &lt;path&gt; and launchctl unload &lt;path&gt; with SleepWatcher on wake and sleep respectively.