Systemd

I am writing a program that must determine certain things about services. How can I, or my program, determine which services are started automatically when a given target becomes active. It is my impression that just looking in the target's .wants directory is inadequate because of other dependencies, such as in "After=," "Requires=," etc.

We need lots of information.

  1. What OS(es)?
  2. What shell

I am testing this in Fedora 15 (32 bit) in the bash shell, but I presume that answer would be the same for most if not all implementations of systemd.