delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2025/07/01/14:17:24

DMARC-Filter: OpenDMARC Filter v1.4.2 delorie.com 561IHOBr3431695
Authentication-Results: delorie.com; dmarc=pass (p=none dis=none) header.from=cygwin.com
Authentication-Results: delorie.com; spf=pass smtp.mailfrom=cygwin.com
DKIM-Filter: OpenDKIM Filter v2.11.0 delorie.com 561IHOBr3431695
Authentication-Results: delorie.com;
dkim=pass (1024-bit key, unprotected) header.d=cygwin.com header.i=@cygwin.com header.a=rsa-sha256 header.s=default header.b=UnHUOKNx
X-Recipient: archive-cygwin AT delorie DOT com
DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 2E523385C6D1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cygwin.com;
s=default; t=1751393842;
bh=ECjat1jf9N2JbJS0LwzAf3fWD4QS+DmATsLrbK72YgE=;
h=Date:To:Subject:In-Reply-To:References:List-Id:List-Unsubscribe:
List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:
From;
b=UnHUOKNxpolMF3v1k7OTd0QJ3BgG9qArFEA+kYHaWsPtoXCFRNJifq4xRNzSpN3Em
MyMv5TSz7itkGWlXzNdxauQ87yYymINH2oaYpqGWx7ylln0/qwNe5ANmJfbLvTqOv+
/Hx47FbVR8fBkxqurXjYaH/3gAa2xPDMqpUToc/4=
X-Original-To: cygwin AT cygwin DOT com
Delivered-To: cygwin AT cygwin DOT com
DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 6A0863857B9B
ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 6A0863857B9B
ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1751393811; cv=none;
b=pIKSd+9+XJtZGo4t8igIxUxUAZ7Tb9nPra2HZTDGm9/52DdZbvCmzfj9zbzTy2N+CNkvvMs2t/CfKMIHldAcFZcJbi6CL08ACFHoyRLRm9Fz1s5L8eOmHmetY+fo8i+4nOB2b0YnwkrcRVGZ0fs8Nrd65R3JiJ6P0jOchP+FrVY=
ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key;
t=1751393811; c=relaxed/simple;
bh=Q6mXGAk27TDYQCQaOFCwdx8pKGhLVSZWcos3/nhseUU=;
h=DKIM-Signature:Date:From:To:Subject:Message-ID:MIME-Version;
b=Ni7q5ALIxf6vjqH01geAdoc+oYTESCGhwUMXQxxF8ZC1TS6WjFAsPpD9NYPGKfh9TbSrrUjHmc/n8Zdsiu0mOUbN5WpoXj7oWWSYmn67hXm10XootZhmjnqIjwGm3zQdaUn0K9TJTt8ESWQAsgI0nRmB8rg7mamVYjFX5Bn55nQ=
ARC-Authentication-Results: i=1; server2.sourceware.org
DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 6A0863857B9B
Date: Tue, 1 Jul 2025 11:16:50 -0700 (PDT)
X-X-Sender: jeremyd AT resin DOT csoft DOT net
To: Brian Inglis via Cygwin <cygwin AT cygwin DOT com>
Subject: Re: setpgid non-compliance with POSIX?
In-Reply-To: <3b667ff0-7778-4b48-866f-1dd112317c84@SystematicSW.ab.ca>
Message-ID: <ef2b783c-6770-531e-26ad-b46c3180a126@jdrake.com>
References: <3391453b-7914-a319-fad8-4729610558ea AT jdrake DOT com>
<aGJc0nVQ-1v1DqCO AT calimero DOT vinschen DOT de>
<f5748be6-5730-ae25-20af-3ed60be5c100 AT jdrake DOT com>
<3b667ff0-7778-4b48-866f-1dd112317c84 AT SystematicSW DOT ab DOT ca>
MIME-Version: 1.0
X-BeenThere: cygwin AT cygwin DOT com
X-Mailman-Version: 2.1.30
List-Id: General Cygwin discussions and problem reports <cygwin.cygwin.com>
List-Unsubscribe: <https://cygwin.com/mailman/options/cygwin>,
<mailto:cygwin-request AT cygwin DOT com?subject=unsubscribe>
List-Archive: <https://cygwin.com/pipermail/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-request AT cygwin DOT com?subject=help>
List-Subscribe: <https://cygwin.com/mailman/listinfo/cygwin>,
<mailto:cygwin-request AT cygwin DOT com?subject=subscribe>
From: Jeremy Drake via Cygwin <cygwin AT cygwin DOT com>
Reply-To: Jeremy Drake <cygwin AT jdrake DOT com>
Errors-To: cygwin-bounces~archive-cygwin=delorie DOT com AT cygwin DOT com
Sender: "Cygwin" <cygwin-bounces~archive-cygwin=delorie DOT com AT cygwin DOT com>

On Tue, 1 Jul 2025, Brian Inglis via Cygwin wrote:

> On 2025-06-30 13:07, Jeremy Drake via Cygwin wrote:
> > On Mon, 30 Jun 2025, Corinna Vinschen via Cygwin wrote:
> >
> >> Off the top of my head I don't know how to check the pgid already exists.
> >> Do you?
> >
> > I think it'd have to iterate all processes and check pgid and sid members
> > of pinfo until it found a match.
>
> Shouldn't need to - pgid is the pid of a process spawned by init, or pid of a
> login shell, and sid is that pgid or that of the parent process, or pgid is
> that
> of a job shell or of the parent process.

In practice, perhaps, but in theory it could get more complicated than
that.

> So each process sid also pgid is either its pid or that of its parent process:
> they are only set either to the process pid or inherited.

Not just parent, but could be inherited any level of ancestor, including
ancestors that then terminate, leaving the process adopted by init.  Also,
the restrictions given by POSIX seem to allow setting pgid to a
sibling/cousin/aunt/uncle as long as they have created a pgid (by
setting it to their pid) and are in the same sid.

> Try head /proc/self/*id & and head /proc/$$/*id as demos.
>
> Does any of that help? ;^>
>

Not really :P  I hope I don't have to write more test cases for some of
the complicated scenarios I envision being legal under the POSIX docs, I
feel like I've caused enough trouble already with the test cases I've
written trying to exercise posix_spawn :)

-- 
Problem reports:      https://cygwin.com/problems.html
FAQ:                  https://cygwin.com/faq/
Documentation:        https://cygwin.com/docs.html
Unsubscribe info:     https://cygwin.com/ml/#unsubscribe-simple

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019