Comment 64 for bug 491483

Revision history for this message
Bela Lubkin (filbo) wrote :

Although the proposed patch will fix this, it isn't the best approach.

The "failsafeXServer" script should be split off from gdm, made its own package,
and should be aware of all possible login managers.

The man page init(5) has a lovely example:

   stop on stopping gdm or stopping kdm

What's wanted is for /etc/init/failsafe-x.conf to say something like:

   start on stopped $(basename $(cat /etc/X11/default-display-manager))

I don't know if Upstart's parsing supports that sort of shell pipeline substitution.
I also don't know if it is true in all cases that the _service_ ("gdm", "xdm" etc.)
name and the name of the binary shoved into /etc/X11/default-display-manager
match in this manner. So the above is only a conceptual example.

What is even more wanted is a concept of a generic service in Upstart. Similar
to how several .deb packages can provide a single service (Java plugin, web
browser, etc.); similar to how /etc/alternatives works:

   start on stopped display-manager

and some other parts of the system deal with mapping "display-manager" to
whatever it's supposed to be.

BTW this problem has entirely to do with gdm's X failsafe script vs. other login
managers, and nothing to do with kernel releases, choice of video driver, etc.
I'm having the problem with xdm + nVidia open source driver (whatever it's
called).

Another possible field workaround, besides switching to gdm or patching one
of the mentioned scripts, would be to _remove_ gdm. This might be difficult,
depending on what else is marked dependent on it.