While starting to write a completion function for systemctl, I found out there was already an existing completion script for bash shipped with systemd: systemctl-bash-completion.sh. I tried to use it in zsh (using bashcompinit) but encountered errors. So I finished my zsh completion function, now inspired from _yum …and bash-completion.sh. It should be reasonably helpful. Comments are very welcome.
It can be found on my github account