🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: be.comp.programming
Article #13946

Re: probleempje met 'child-locking'

#13946
From: Kj0n
Date: Thu, 10 May 2001 16:14
42 lines
3034 bytes
In article <u0ced9.ih6.ln@frigg.belbone.net>, "Kristoff Bonne"
<kristoff.bonne@compaqnet.nospam.be> wrote:
>
> Mogelijk oplossingen:
> 1/ De meest 'logisch' manier is dat het 'child'-process eerst een 'lock'
> zet (ergens in een bestandje), maar gezien eigenschap 2 (soms voortijdig
> sterven) wil ik vermijden dat er 'locks' blijven staan (die niet konden
> gewist worden door het child-process wegens een 'plotse dood').
> 
> 2/ Ik zoek dus iets dat een 'lock' aanmaakt, maar dat 'automatisch'
> verdwijnt als het child-process verdwijnt; ook als (bv.) dat process
> 'afgemaakt' wordt door een 'kill -9'.
> 
> 3/ Een andere mogelijkheid zou zijn dat 'mama' een lijst bijhoudt van
> de 'pid's van haar children. De vraag is dan hoe 'mama' (de volgende
> keer dat ze opgestart wordt) dat process nr. xxx effectief 'haar' child
> is, en niet iets anders dat toevallig opgestart is onder dat pid?
> 
> 4/ De enige manier die ik gevonden heb, is dat elk 'child'-process een
> TCP-socket zou openen als 'lock'. (want een 'tcp-socket' verdwijnt
> vanzelf als het process 'achter' die socket verdwijnt), maar dat lijkt
> me allemaal wel serieus 'zwaar'.
> 
> Dus, zou het kunnen om iets 'lichters' daarvoor gebruiken (fifo's,
> semaforen, ...).
> 
> 
> Iemand enig idee?

Een (nog altijd niet heel mooie oplossing) zou zijn om een child process
een bestand te laten creeren met daarin zijn PID. Als het dan een tweede
keer opgestart wordt, vindt het dat bestand en kan kijken of het proces
met dat PID nog bestaat en indien ja, stoppen.

Een mogelijk probleem is dan wel dat het mogelijk is dat als het child
process niet goed gestopt is dat bestand blijft bestaan en een ander
proces hetzelfde PID al heeft gekregen (niet erg waarschijnlijk, maar
toch mogelijk). Om dat op te lossen kun je in /proc/XXX/cmdline de
commandoregel van het proces opvragen en kijken of die hetzelfde
is.

Kj0n.
Technical Details
Message-ID: <989511293.210801@seven.kulnet.kuleuven.ac.be>
Path: arc1-ca.pugleaf.net!newsfeed.google.com!sn-xit-03!supernews.com!newsswitch.lcs.mit.edu!news-spur1.maxwell.syr.edu!news.maxwell.syr.edu!newsfeed00.sul.t-online.de!t-online.de!skynet.be!newsfeeds.belnet.be!naxos.belnet.be!news.belnet.be!umbra!janv
References: <u0ced9.ih6.ln@frigg.belbone.net>

Show Full Headers
Complete Article Headers
X-Google-Language: DUTCH,ASCII-7-bit
X-Google-Thread: fcea4,2f3cba8338648af7
X-Google-Attributes: gidfcea4,public
X-Google-ArrivalTime: 2001-05-10 09:16:14 PST
Path: arc1-ca.pugleaf.net!newsfeed.google.com!sn-xit-03!supernews.com!newsswitch.lcs.mit.edu!news-spur1.maxwell.syr.edu!news.maxwell.syr.edu!newsfeed00.sul.t-online.de!t-online.de!skynet.be!newsfeeds.belnet.be!naxos.belnet.be!news.belnet.be!umbra!janv
From: "Kj0n" <Kj0n@yahoo.com>
Newsgroups: be.comp.programming
Subject: Re: probleempje met 'child-locking'
Date: Thu, 10 May 2001 18:14:19 +0200
Organization: KULeuvenNet
Lines: 42
Message-ID: <989511293.210801@seven.kulnet.kuleuven.ac.be>
References: <u0ced9.ih6.ln@frigg.belbone.net>
NNTP-Posting-Host: seven.kulnet.kuleuven.ac.be
X-Trace: naxos.belnet.be 989511293 4831 134.58.127.12 (10 May 2001 16:14:53 GMT)
X-Complaints-To: abuse@belnet.be
NNTP-Posting-Date: Thu, 10 May 2001 16:14:53 +0000 (UTC)
User-Agent: Pan/0.9.1 (Unix)
X-No-Productlinks: Yes
Cache-Post-Path: seven.kulnet.kuleuven.ac.be!unknown@umbra.cs.kuleuven.ac.be
X-Cache: nntpcache 2.4.0b5 (see http://www.nntpcache.org/)