Re: [gdm-list] FailsafeXServer - gdm keeps restarting X




Bryce:

I think what GDM is assuming that the "failsafe X server" will start
up an Xserver that it can run the greeter on.  It seems like you
want GDM to do something else.  I think you probably need to hack
the code to make it avoid trying to manage the display after
starting the Xserver script.  Perhaps a configuration option could
be added so that you could more easily configure GDM to work this
way.

Brian

On Thu, Aug 30, 2007 at 05:23:24PM -0700, Mike Oliver wrote:
Bryce Harrington wrote:
I've tried it both with and without the '&' without any change of
effect.  I left it in since the example you pointed to had one but I
think it is unnecessary.
Leave the '&' there, otherwise the 'sleep' and 'kill' won't
execute until after the 'xinit' has terminated.

Try adding a 'wait' after the 'kill' so that your failsafe
script does not exit until the 'xinit' exits.  Right now your
script will terminate immediately after the 'kill', and
that's going to cause GDM to try to proceed to do something
else with this server instance.

Hi Mike,

Wow, this seems to have taken a big step forward, although it's still
not quite working.  After adding 'wait' at the end of the script, the
behavior is a bit different.  It starts up the failsafe session like
before, but now after a second or two it overlays the screen with a
warning dialog.  Unfortunately, after clearing the dialog, it still goes
back to restarting the x server.  But I think this means that now gdm is
hearing back that the X process is running.

The full log is here:
   people.ubuntu.com/~bryce/files/gdm-syslog.log

The interesting parts of the log:

Aug 30 18:45:41 dorset gdm[7848]: DEBUG: gdm_server_spawn: '/etc/gdm/failsafeExample :0 -auth /var/lib/gdm/:0.Xauth -nolisten tcp vt9' Aug 30 18:45:41 dorset gdm[7842]: DEBUG: gdm_server_spawn: Forked server on pid 7848 Aug 30 18:45:41 dorset gdm[7842]: DEBUG: do_server_wait: Before mainloop waiting for server ... Aug 30 18:45:46 dorset gdm[7842]: DEBUG: gdm_server_start: After mainloop waiting for server Aug 30 18:45:46 dorset gdm[7842]: DEBUG: gdm_server_start: Completed :0! Aug 30 18:45:46 dorset gdm[7842]: DEBUG: Sending VT_NUM == 9 for slave 7842 ... Aug 30 18:45:46 dorset gdm[7786]: DEBUG: Handling message: 'VT_NUM 7842 9' Aug 30 18:45:46 dorset gdm[7786]: DEBUG: Got VT_NUM == 9 Aug 30 18:45:46 dorset gdm[7842]: DEBUG: Sending XPID == 7848 for slave 7842 ... Aug 30 18:45:46 dorset gdm[7786]: DEBUG: Handling message: 'XPID 7842 7848' Aug 30 18:45:46 dorset gdm[7786]: DEBUG: Got XPID == 7848 Aug 30 18:45:46 dorset gdm[7842]: DEBUG: gdm_slave_run: Opening display :0 ... Aug 30 18:45:46 dorset gdm[7786]: DEBUG: Handling message: 'START_NEXT_LOCAL' ... Aug 30 18:45:46 dorset gdm[7842]: DEBUG: gdm_slave_greeter: Running greeter on :0 Aug 30 18:45:46 dorset gdm[7842]: DEBUG: Attempting to parse key string: daemon/DisplayInitDir=/etc/gdm/Init Aug 30 18:45:46 dorset gdm[7842]: DEBUG: Forking extra process: /etc/gdm/Init/Default ... Aug 30 18:45:46 dorset gdm[7842]: DEBUG: Forking greeter process: /usr/lib/gdm/gdmgreeter ... Aug 30 18:45:46 dorset gdm[7862]: DEBUG: Sending SHOW_ERROR_DIALOG == <secret> for slave 7862 Aug 30 18:45:46 dorset gdm[7786]: DEBUG: Attempting to parse key string: debug/Enable=false Aug 30 18:45:46 dorset gdm[7786]: DEBUG: Handling message: 'opcode=SHOW_ERROR_DIALOG$$pid=7842$$type=3$$error=Could not start the regular X server (your graphical environment) and so this is a failsafe X server. You should log in and properly configure the X server.$$details_label=NIL$$details_file=NIL$$uid=0$$gid=0' Aug 30 18:45:46 dorset gdm[7786]: DEBUG: Forking extra process: error dialog ... Aug 30 18:45:46 dorset gdm[7863]: Gtk-WARNING: Ignoring the separator setting Aug 30 18:45:46 dorset gdm[7842]: DEBUG: gdm_slave_greeter: Greeter on pid 7862 Aug 30 18:45:46 dorset gdm[7842]: DEBUG: Sending GREETPID == 7862 for slave 7842

I'm curious what this 'START_NEXT_LOCAL' bit is?

The slave sends this to the main daemon when it has finished starting up a local
display.  The daemon starts them one-at-a-time to avoid problems trying to start
them all at once, I think.

I take it the greeter is what creates this SHOW_ERROR_DIALOG stuff?  Is
there a way to turn that off?  (I display my own greet dialog as part of
the failsafe code).

No, there isn't an easy way to tell GDM not to start up the greeter.  This
would, I think, require hacking the code to do what you want.

Brian




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]