Yes there is a way to do this within the launchd/launchctl paradigm:
sudo launchctl bslist
will give you output of all loaded launchd processes, with
A for active. It's running
I for inactive. It's not supposed to run. It should not run on it's own, and I hope you notice how my tone is not definitive. But it's not supposed to surprise you, I should mean off.
D for on demand. Not running now, but could be, since it could have started at any time.
Also, if you want a treelike structure, so you can see which process fathered what:
sudo launchctl bstree
You'll get
A com.apple.windowserver.active
D com.apple.DirectoryService.localonly
com.apple.metadata.mds[46].subset.109 (Explicit Subset)/
D com.apple.Spotlight.ImporterWorker.89
D com.apple.Spotlight.ImporterWorker.i386.89
A com.apple.Spotlight.ImporterWorker.501
D com.apple.Spotlight.SyncScanWorker
Which is a tree of the processes and their states.
If you are anything like me, you'll be wanting to use some stuff from here because you might find some peculiar things when you look.