[PATCH v2 2/2] systemd-logind: Only use systemd-logind integration together with keeptty
Peter Hutterer
peter.hutterer at who-t.net
Tue May 5 23:44:31 PDT 2015
On Thu, Apr 30, 2015 at 02:24:29PM +0200, Hans de Goede wrote:
> systemd-logind integration does not work when starting X on a new tty, as
> that detaches X from the current session and after hat systemd-logind revokes
> all rights any already open fds and refuses to open new fds for X.
>
> This means that currently e.g. "startx -- vt7" breaks, and breaks badly,
> requiring ssh access to the system to kill X.
>
> The fix for this is easy, we must not use systemd-logind integration when
> not using KeepTty, or iow we may only use systemd-logind integration together
> with KeepTty.
>
> Signed-off-by: Hans de Goede <hdegoede at redhat.com>
> ---
> Changes in v2:
> -Document that -keeptty must be passed for logind integration in man page
> -Print an INFO message when disabling logind integration due to -keeptty
> not being set
> ---
> hw/xfree86/man/Xorg.man | 6 +++---
> hw/xfree86/os-support/linux/systemd-logind.c | 9 +++++++++
> 2 files changed, 12 insertions(+), 3 deletions(-)
>
> diff --git a/hw/xfree86/man/Xorg.man b/hw/xfree86/man/Xorg.man
> index 3ff6aef..0864a58 100644
> --- a/hw/xfree86/man/Xorg.man
> +++ b/hw/xfree86/man/Xorg.man
> @@ -271,9 +271,9 @@ is ignored if
> is anything other than \(oqPCI\(cq.
> .TP 8
> .B \-keeptty
> -Prevent the server from detaching its initial controlling terminal.
> -This option is only useful when debugging the server. Not all platforms
> -support (or can use) this option.
> +Prevent the server from detaching its initial controlling terminal. If you
> +want to use systemd-logind integration you must specify this option.
> +Not all platorms support (or can use) this option.
typo, platforms
otherwise, Reviewed-by: Peter Hutterer <peter.hutterer at who-t.net>
Cheers,
Peter
> .TP 8
> .BI \-keyboard " keyboard-name"
> Use the xorg.conf(__filemansuffix__) file
> diff --git a/hw/xfree86/os-support/linux/systemd-logind.c b/hw/xfree86/os-support/linux/systemd-logind.c
> index 4ad41a3..72f1ae3 100644
> --- a/hw/xfree86/os-support/linux/systemd-logind.c
> +++ b/hw/xfree86/os-support/linux/systemd-logind.c
> @@ -34,6 +34,7 @@
>
> #include "os.h"
> #include "dbus-core.h"
> +#include "linux.h"
> #include "xf86.h"
> #include "xf86platformBus.h"
> #include "xf86Xinput.h"
> @@ -596,6 +597,14 @@ static struct dbus_core_hook core_hook = {
> int
> systemd_logind_init(void)
> {
> + linux_parse_vt_settings();
> + if (!linux_get_keeptty()) {
> + LogMessage(X_INFO,
> + "systemd-logind: logind integration requires -keeptty and "
> + "-keeptty was not provided, disabling logind integration\n");
> + return 1;
> + }
> +
> return dbus_core_add_hook(&core_hook);
> }
>
> --
> 2.3.6
>
> _______________________________________________
> xorg-devel at lists.x.org: X.Org development
> Archives: http://lists.x.org/archives/xorg-devel
> Info: http://lists.x.org/mailman/listinfo/xorg-devel
>
More information about the xorg-devel
mailing list