GNU bug report logs -
#49839
[PATCH] shepherd: add keep-tty flag to skip setsid
Previous Next
Reported by: muradm <mail <at> muradm.net>
Date: Tue, 3 Aug 2021 01:08:02 UTC
Severity: normal
Tags: patch
Done: Ludovic Courtès <ludo <at> gnu.org>
Bug is archived. No further changes may be made.
Full log
Message #10 received at 49839-done <at> debbugs.gnu.org (full text, mbox):
Hi,
muradm <mail <at> muradm.net> skribis:
> * modules/shepherd/service.scm: add keep-tty flag to skip setsid
>
> when using shepherd as user, programs like xorg server, potentially
> any
> program which ends up interacting with user, require terminal to
> remain.
>
> currently, setsid is called unconditionally from exec-command
> function,
> making it impossible to have such process.
>
> this adds keep-tty flag to make-forkexec-constructor up to
> exec-command
> function where setsid is actually called.
>
> diff --git a/modules/shepherd/service.scm b/modules/shepherd/service.scm
> index 587ff68..1ae9544 100644
> --- a/modules/shepherd/service.scm
> +++ b/modules/shepherd/service.scm
> @@ -786,6 +786,7 @@ daemon writing FILE is running in a separate PID namespace."
> (log-file #f)
> (directory (default-service-directory))
> (file-creation-mask #f)
> + (keep-tty #f)
> (environment-variables (default-environment-variables)))
> "Run COMMAND as the current process from DIRECTORY, with FILE-CREATION-MASK
> if it's true, and with ENVIRONMENT-VARIABLES (a list of strings like
> @@ -804,7 +805,7 @@ false."
> ((program args ...)
> ;; Become the leader of a new session and session group.
> ;; Programs such as 'mingetty' expect this.
> - (setsid)
> + (unless keep-tty (setsid))
I did that slightly differently:
https://git.savannah.gnu.org/cgit/shepherd.git/commit/?id=c43f81794344dbac31bcb8b8f1c0d266f47f14fa
Let me know if it works for you.
Thanks,
Ludo’.
This bug report was last modified 3 years and 286 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.