server: Use specific exit codes for specific error

This will make it easier to identify which error occurred when all the client gets
is the exit code in the error message:

Error constructing proxy for org.gnome.Terminal:/org/gnome/Terminal/Factory0: Error calling StartServiceByName for org.gnome.Terminal: GDBus.Error:org.freedesktop.DBus.Error.Spawn.ChildExited: Process org.gnome.Terminal exited with status 1

(cherry picked from commit 4f746f763142f222f03ff575c336b4196e2a5ad4)