From owner-freebsd-questions@FreeBSD.ORG Wed Oct 15 20:00:55 2014 Return-Path: Delivered-To: freebsd-questions@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 39A47E28 for ; Wed, 15 Oct 2014 20:00:55 +0000 (UTC) Received: from mx02.qsc.de (mx02.qsc.de [213.148.130.14]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id CAD92973 for ; Wed, 15 Oct 2014 20:00:54 +0000 (UTC) Received: from r56.edvax.de (port-92-195-30-92.dynamic.qsc.de [92.195.30.92]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mx02.qsc.de (Postfix) with ESMTPS id 82D252780A; Wed, 15 Oct 2014 22:00:51 +0200 (CEST) Received: from r56.edvax.de (localhost [127.0.0.1]) by r56.edvax.de (8.14.5/8.14.5) with SMTP id s9FK0ovd002697; Wed, 15 Oct 2014 22:00:50 +0200 (CEST) (envelope-from freebsd@edvax.de) Date: Wed, 15 Oct 2014 22:00:50 +0200 From: Polytropon To: freebsd-questions@freebsd.org Subject: Re: exiting Xorg locks up 9.2-STABLE system Message-Id: <20141015220050.337de77d.freebsd@edvax.de> In-Reply-To: <44tx35w4ix.fsf@be-well.ilk.org> References: <20141015162547.GJ3963@itcom245.staff.itd.umich.edu> <20141015185327.4fc2590d.freebsd@edvax.de> <44tx35w4ix.fsf@be-well.ilk.org> Reply-To: Polytropon Organization: EDVAX X-Mailer: Sylpheed 3.1.1 (GTK+ 2.24.5; i386-portbld-freebsd8.2) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Cc: Lowell Gilbert X-BeenThere: freebsd-questions@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: User questions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 15 Oct 2014 20:00:55 -0000 On Wed, 15 Oct 2014 14:51:02 -0400, Lowell Gilbert wrote: > Polytropon writes: > > > On Wed, 15 Oct 2014 12:25:47 -0400, William Bulley wrote: > >> According to Polytropon on Wed, 10/15/14 at 12:18: > >> > > >> > The last line of your ~/.xinitrc file should be: > >> > > >> > exec /usr/local/bin/mwm > >> > > >> > This makes sure that the process "continues" as mwm, and when > >> > mwm exits, then X also exists. > >> > >> Thanks. The last line of my ~/.xinitrc file is: > >> > >> /usr/local/bin/mwm 2>&1 /dev/null > >> > >> and since I start Xorg thusly: > >> > >> /usr/local/bin/xinit -- /usr/local/bin/Xorg > >> > >> I had thought when I exit mwm(1) using the "f.quit_mwm" feature, > >> that then Xorg would exit. Is that not the case? Or am I missing > >> your point above? This configuration has been working for me for > >> about fifteen years. :-) > > > > Interesting, but it's not what The FreeBSD Handbook suggests > > and what _I_ have been using for about fifteen years. :-) > > > > The "exec" statement makes the xinit process "continue" as > > the window manager process. Its f.quit_mwm function exits > > the mwm program, but that does not have any effect on the > > X session - the session continues without a window manager > > (which is possible). Only if the X process is "connected" > > to the window manager process using "exec", it will exit, > > and so quit the X session entirely. > > Without "exec", the windows manager is running as a subprocess of > shell executing the .xinitrc file. When it exits, the shell continues, > runs the shell input to completion, and the shell process terminates, > which also terminates the X server session. > > In other words, either way will work fine as far as this situation is > concerned. Using "exec" avoids having an extra process sticking around, > which is slightly more efficient -- but keeps your .xinitrc from being > able to do any custom cleanup after the window manager exits. I venture > to say that only a vanishing few would ever notice the difference. This is a very good description. :-) > > This is what "init" or "startx" help to do: They source > > the .xinitrc file and execute it. Its last line, the "exec" > > statement, creates the "connection" between the X session > > and the program which has control over its life, usually > > the window manager - but it could also be an xterm, and > > when _that_ xterm is closed, the X session terminates. > > The line "exec /usr/local/bin/mwm" will do this. > > There are several factual errors in here, although nothing that the > original poster would need to know. It's mostly a matter of not properly > conveying the concept of a child process, or of the fact that a parent > process (in these cases) waits for its child process to complete before > continuing on with its own business. Yes, I didn't want to go too deeply into process chemistry, but your description is fully correct. That's what I wanted to express with "connection". :-) -- Polytropon Magdeburg, Germany Happy FreeBSD user since 4.0 Andra moi ennepe, Mousa, ...