From owner-freebsd-current@FreeBSD.ORG Wed Dec 21 15:36:34 2005 Return-Path: X-Original-To: freebsd-current@FreeBSD.org Delivered-To: freebsd-current@FreeBSD.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id E877D16A420; Wed, 21 Dec 2005 15:36:34 +0000 (GMT) (envelope-from bushman@rsu.ru) Received: from mail.r61.net (mail.r61.net [195.208.245.249]) by mx1.FreeBSD.org (Postfix) with ESMTP id 77B4443D49; Wed, 21 Dec 2005 15:36:31 +0000 (GMT) (envelope-from bushman@rsu.ru) Received: from [195.208.252.201] (celsius.cc.rsu.ru [195.208.252.201]) by mail.r61.net (8.13.4/8.13.4) with ESMTP id jBLFaOdo082755; Wed, 21 Dec 2005 18:36:24 +0300 (MSK) (envelope-from bushman@rsu.ru) Message-ID: <43A977B4.6080200@rsu.ru> Date: Wed, 21 Dec 2005 18:41:40 +0300 From: Michael Bushkov User-Agent: Mozilla Thunderbird 1.0.7 (X11/20051018) X-Accept-Language: en-us, en MIME-Version: 1.0 To: Pawel Jakub Dawidek References: <436A0C73.3010405@rsu.ru> <20051103140221.GF29387@submonkey.net> <43A009CB.2090800@rsu.ru> <20051219130928.GE63860@submonkey.net> <20051219135019.GF63860@submonkey.net> <43A6CC9E.6040109@rsu.ru> <20051219152505.GI63860@submonkey.net> <002c01c604c4$60ebe010$0100a8c0@jersey> <20051219183137.GA1103@odin.ac.hmc.edu> <43A7D4A6.6000607@rsu.ru> <20051220140927.GA1671@garage.freebsd.pl> In-Reply-To: <20051220140927.GA1671@garage.freebsd.pl> Content-Type: text/plain; charset=windows-1251; format=flowed Content-Transfer-Encoding: 7bit X-Virus-Scanned: ClamAV version 0.86.2, clamav-milter version 0.86 on asterix.r61.net X-Virus-Status: Clean Cc: freebsd-current@FreeBSD.org, Ceri Davies Subject: [PATCH] pidfile_check() possible function X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 21 Dec 2005 15:36:35 -0000 Hi! I've made a sample implementation of pidfile_check() function based on pkill's takepid() function. It's interface is like this: int pidfile_check(const char *path, int pidfilelock, pid_t *pidptr); The patch is here: http://rsu.ru/~bushman/libpidfile.patch pidfile_check returns 0 if the pidfile owner seems to be active and (-1) otherwise (in case of failure errno would also be set). The path argument is the path of the pidfile. If pidfilelock is not 0, the function will attempt to lock the file to check if the pidfile owner is currently running. If pidptr is not NULL and pidfile owner seems to be active, it's pid will be placed in pidptr. Looking forward for your comments and suggestions! Michael Bushkov