by using Type=forking, which means: the service has some setup to
do (such as the D-Bus socket) and will fork off a worker, and the main
process only exits when the worker is set up and ready.
And that's exactly what we do already.
Before, it would fail like:
# systemctl start d-installer.service; ./dinstaller config show
D-Bus service error: I/O error: No such file or directory (os error 2)
(where the file not found is /run/d-installer/bus, TODO add it to the message)
|
||
|---|---|---|
| .. | ||
| dbus.conf | ||
| filter-config.rb | ||
| org.opensuse.DInstaller.Language.service | ||
| org.opensuse.DInstaller.Questions.service | ||
| org.opensuse.DInstaller.service | ||
| org.opensuse.DInstaller.Software.service | ||
| org.opensuse.DInstaller.Storage.service | ||
| org.opensuse.DInstaller.Users.service | ||
| systemd.service | ||