From owner-freebsd-ports@FreeBSD.ORG Fri Sep 16 20:15:50 2011 Return-Path: Delivered-To: freebsd-ports@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 463231065675 for ; Fri, 16 Sep 2011 20:15:50 +0000 (UTC) (envelope-from gabor@FreeBSD.org) Received: from server.mypc.hu (server.mypc.hu [87.229.73.95]) by mx1.freebsd.org (Postfix) with ESMTP id BA4838FC08 for ; Fri, 16 Sep 2011 20:15:49 +0000 (UTC) Received: from server.mypc.hu (localhost [127.0.0.1]) by server.mypc.hu (Postfix) with ESMTP id 9ACC614E5F75; Fri, 16 Sep 2011 22:00:39 +0200 (CEST) X-Virus-Scanned: amavisd-new at server.mypc.hu Received: from server.mypc.hu ([127.0.0.1]) by server.mypc.hu (server.mypc.hu [127.0.0.1]) (amavisd-new, port 10024) with LMTP id DC1KjRDO0ZXj; Fri, 16 Sep 2011 22:00:37 +0200 (CEST) Received: from [192.168.1.106] (catv-80-98-232-12.catv.broadband.hu [80.98.232.12]) (using TLSv1 with cipher DHE-RSA-CAMELLIA256-SHA (256/256 bits)) (No client certificate requested) by server.mypc.hu (Postfix) with ESMTPSA id 5D3B214E5F4E; Fri, 16 Sep 2011 22:00:37 +0200 (CEST) Message-ID: <4E73AADB.8060804@FreeBSD.org> Date: Fri, 16 Sep 2011 22:00:27 +0200 From: Gabor Kovesdan User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:9.0a1) Gecko/20110904 Thunderbird/9.0a1 MIME-Version: 1.0 To: Matthias Andree References: <20110912230943.GD33455@guilt.hydra> <4E6E99BC.4050909@missouri.edu> <1315905051.1747.208.camel@xenon> <4E6F8A50.9060205@gmx.de> <1315942042.1747.258.camel@xenon> <4E6FD71D.9010207@gmx.de> <20110914181553.f6d31b0f.cjr@cruwe.de> <4E722F3F.3030606@wasikowski.net> <20110915180815.GA46983@guilt.hydra> <4E7247F2.7080207@wasikowski.net> <20110915183710.GA47127@guilt.hydra> <4E7253AF.7030602@wasikowski.net> <4E725782.3090107@gmx.de> <46157122.20110916135126@serebryakov.spb.ru> <4E73709D.5020004@gmx.de> In-Reply-To: <4E73709D.5020004@gmx.de> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Cc: lev@FreeBSD.org, ports-list freebsd Subject: Re: Re-starting daemons across upgrades? X-BeenThere: freebsd-ports@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Porting software to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 16 Sep 2011 20:15:50 -0000 On 2011.09.16. 17:51, Matthias Andree wrote: > Am 16.09.2011 11:51, schrieb Lev Serebryakov: >> Hello, Freebsd-ports. >> You wrote 16 сентября 2011 г., 0:28:07: >> >>>> Really? I thought it was supposed to be standard behaviour- the @stopdaemon >>>> line in pkg-plist facilitates that. >>> While I totally understand why we do this, I have to say it's VERY >>> VERY annoying behavior especially when one upgrading a remote system >>> with multiple server daemon ports. One have to watch the whole >>> process carefully and restart the daemon manually. >> Yep, and even more annoyingly is that it is completely inconsistent: >> some daemons are stopped, some not, etc. > We do not currently have a standard procedure for that, nor do we record > the necessary state -- perhaps we should just discuss, vote, and add a > paragraph to the porter's handbook. > > We also need to bring the authors (or volunteers) for the de-facto > standard upgrade tools into the loop. > > My thoughts: > > - give the user a choice to configure whether to restart services > > - optional: give the users a chance to configure this per-service > > - discuss whether we want/need to support this (a) in the framework that > we currently use, (b) only in pkgng, (c) in portmaster and portupgrade > where necessary. Or we could have a facility to check whether services are running. For example, I have some cron scripts, which are similar for all of the services that I'm watching. They run periodically and restart services if they are down. It does not matter if they are down because of an upgrade or a failure, so this solution is more general. Here's an example that I have for MySQL: #!/bin/sh PID_FILE="/var/db/mysql/server.mypc.hu.pid" PID=`cat $PID_FILE` EXECUTABLE="/usr/local/etc/rc.d/mysql-server start" if test -r $PID_FILE ; then # pidfile exist, is it correct? if kill -CHLD $PID >/dev/null 2>&1; then # ok, exit silently exit 0 fi rm -f $PID_FILE fi echo "" echo "Couldn't find the MySQL server running, retsarting.." echo "" $EXECUTABLE Gabor