Date: Thu, 2 Feb 2012 22:54:49 -0800 From: Jeremy Chadwick <freebsd@jdc.parodius.com> To: Doug Barton <dougb@FreeBSD.org> Cc: Torfinn Ingolfsen <torfinn.ingolfsen@broadpark.no>, freebsd-stable@freebsd.org Subject: Re: FreeBSD 8.2-stable: devd fails to restart Message-ID: <20120203065449.GA15534@icarus.home.lan> In-Reply-To: <4F2B75C2.6090005@FreeBSD.org> References: <20120202212222.e940f64c.torfinn.ingolfsen@broadpark.no> <20120202214550.GA6965@icarus.home.lan> <4F2B75C2.6090005@FreeBSD.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Thu, Feb 02, 2012 at 09:50:58PM -0800, Doug Barton wrote: > On 02/02/2012 13:45, Jeremy Chadwick wrote: > > On Thu, Feb 02, 2012 at 09:22:22PM +0100, Torfinn Ingolfsen wrote: > >> Hi, > >> > >> I thought this bug was fixed back in 2009? > >> root@kg-v7# uname -a > >> FreeBSD kg-v7.kg4.no 8.2-STABLE FreeBSD 8.2-STABLE #7: Sat Jul 9 23:00:31 CEST 2011 root@kg-v7.kg4.no:/usr/obj/usr/src/sys/GENERIC amd64 > >> root@kg-v7# > >> root@kg-v7# service devd status > >> devd is running as pid 555. > >> root@kg-v7# service devd restart > >> Stopping devd. > >> Starting devd. > >> devd: devd already running, pid: 555 > >> /etc/rc.d/devd: WARNING: failed to start devd > >> root@kg-v7# service devd status > >> devd is not running. > >> > >> What gives? > > > > This is probably "what gives", as it's a common problem with all sorts > > of daemons and is not specific to devd in the least: > > > > - devd is running (pid 555) > > - Admin issues "service devd restart" > > -- devd is sent SIGTERM; devd internally starts shutting down, > > but is not fully dead yet. "kill" does not block (wait) for > > processes to end, obviously > > No, but wait_for_pids() does. > > The OP's /etc is out of date. Hmm, mine dated April, for RELENG_8 tag, doesn't appear to use wait_for_pids. Is there implicit usage in it somewhere? (Probably bits of rc.subr(8) I'm not familiar with or don't remember...) #!/bin/sh # # $FreeBSD: src/etc/rc.d/devd,v 1.11.2.2 2011/04/29 20:31:52 dougb Exp $ # # PROVIDE: devd # REQUIRE: netif network_ipv6 # BEFORE: NETWORKING mountcritremote # KEYWORD: nojail shutdown . /etc/rc.subr name="devd" rcvar=`set_rcvar` command="/sbin/${name}" start_precmd=${name}_prestart stop_precmd=find_pidfile find_pidfile() { if get_pidfile_from_conf pid-file /etc/devd.conf; then pidfile="$_pidfile_from_conf" else pidfile="/var/run/${name}.pid" fi } devd_prestart () { find_pidfile # If devd is disabled, turn it off in the kernel to avoid memory leaks. if ! checkyesno ${rcvar}; then $SYSCTL hw.bus.devctl_disable=1 fi } load_rc_config $name run_rc_command "$1" -- | Jeremy Chadwick jdc@parodius.com | | Parodius Networking http://www.parodius.com/ | | UNIX Systems Administrator Mountain View, CA, US | | Making life hard for others since 1977. PGP 4BD6C0CB |
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20120203065449.GA15534>