GNU bug report logs - #49839
[PATCH] shepherd: add keep-tty flag to skip setsid

Previous Next

Package: guix-patches;

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 #13 received at 49839-done <at> debbugs.gnu.org (full text, mbox):

From: muradm <mail <at> muradm.net>
To: Ludovic Courtès <ludo <at> gnu.org>
Cc: 49839-done <at> debbugs.gnu.org
Subject: Re: bug#49839: [PATCH] shepherd: add keep-tty flag to skip setsid
Date: Wed, 11 Aug 2021 00:08:36 +0300
Hi,

Basically it is samething, should work.
Any idea when to expect it in public?

Thanks in advance,
muradm

Ludovic Courtès <ludo <at> gnu.org> writes:

> 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.