Hi,

Tomas Volf <[email protected]> skribis:

> Ludovic Courtès <[email protected]> writes:
>
>> Hello,
>>
>> Maxim Cournoyer <[email protected]> writes:
>>
>>> Your analysis appears correct; the above 'make' runs with PID 3.
>>>
>>> --8<---------------cut here---------------start------------->8---
>>> maxim@terra ~/src/forgejo$ guix shell -CNF -m manifest.scm -- env
>>> GOPATH=/tmp TAGS="bindata timetzdata sqlite sqlite_unlock_notify"
>>> make build
>>> go: downloading go1.24.3 (linux/amd64)
>>> ^Cgo: downloading go1.24.3 (linux/amd64)
>>> ^Cgo: downloading go1.24.3 (linux/amd64)
>>> ^Cgo: downloading go1.24.3 (linux/amd64)
>>> ^Cgo: downloading go1.24.3 (linux/amd64)
>>> ^CForgejo requires Go 1.24 or greater to build. You can get it at 
>>> https://go.dev/dl/
>>> make: *** [Makefile:297: go-check] Error 1
>>> ^C^C^C^C^C^C^C^C^C
>>> # doesn't abort, need kill -9 $pid
>>> --8<---------------cut here---------------end--------------->8---
>>>
>>> This doesn't handle signals as expected because it runs as PID 1.  I
>>> agree this needs be documented or better, handled with --init ala
>>> docker.
>>
>> I didn’t follow closely but how about this:
>>
>> diff --git a/guix/scripts/environment.scm b/guix/scripts/environment.scm
>> index 1c2d222c748..43cfffbd9cb 100644
>> --- a/guix/scripts/environment.scm
>> +++ b/guix/scripts/environment.scm
>> @@ -980,6 +980,11 @@ (define* (launch-environment/container #:key command 
>> bash user user-mappings
>>              ;; Call an additional setup procedure, if provided.
>>              (when setup-hook
>>                (setup-hook profile)))
>> +
>> +          ;; Do not run the shell as PID 1 since that prevents proper signal
>> +          ;; handling (?).
>> +          #:child-is-pid1? #f
>> +
>>            #:guest-uid uid
>>            #:guest-gid gid
>>            #:writable-root? writable-root?
>
> The proposed patch used to work for long time, but is broken by

Filed at <https://codeberg.org/guix/guix/issues/7600>.

Ludo’.



Reply via email to