Date: Sun, 27 Jun 2010 15:50:04 -0600 (MDT) From: "M. Warner Losh" <imp@bsdimp.com> To: yanefbsd@gmail.com Cc: freebsd-current@freebsd.org, hselasky@c2i.net Subject: Re: Patch for rc.d/devd on FreeBSD 9-current Message-ID: <20100627.155004.49280345238493664.imp@bsdimp.com> In-Reply-To: <AANLkTilnYGNz7V6z6AkeKsqUvOMN8yLvO57GM1gOIsTD@mail.gmail.com> References: <201006262229.09747.hselasky@c2i.net> <AANLkTilVB_E-BiOtC-gENBQ7FdPTLcmu8qpmdwU1GyXd@mail.gmail.com> <AANLkTilnYGNz7V6z6AkeKsqUvOMN8yLvO57GM1gOIsTD@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
In message: <AANLkTilnYGNz7V6z6AkeKsqUvOMN8yLvO57GM1gOIsTD@mail.gmail.c= om> Garrett Cooper <yanefbsd@gmail.com> writes: : On Sat, Jun 26, 2010 at 1:45 PM, Garrett Cooper <yanefbsd@gmail.com> = wrote: : > On Sat, Jun 26, 2010 at 1:29 PM, Hans Petter Selasky <hselasky@c2i.= net> wrote: : >> Hi, : >> : >> Sometimes utilities that are started by devd require libraries out= side : >> /usr/lib. One example is the webcamd utility which is started by d= evd upon USB : >> device insertion. What do you think about the following patch: : >> : >> --- devd =A0 =A0 =A0 =A0(revision 209463) : >> +++ devd =A0 =A0 =A0 =A0(local) : >> @@ -4,7 +4,7 @@ : >> =A0# : >> : >> =A0# PROVIDE: devd : >> -# REQUIRE: netif : >> +# REQUIRE: netif ldconfig : >> =A0# BEFORE: NETWORKING mountcritremote : >> =A0# KEYWORD: nojail shutdown : > : > Funny since I was just monkeying around with this. This doesn't app= ear : > to be the only issue with devd: : > : > # devd : > devd: devd already running, pid: 430 : > # pgrep 430; echo $? : > 1 : > # : > : > Looks like /etc/rc.d/devd restart is broken :(... : = : This seems to fix that. : Thanks, : -Garrett : = : Index: devd.cc : =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D : --- devd.cc (revision 209530) : +++ devd.cc (working copy) : @@ -739,6 +739,7 @@ : static void : event_loop(void) : { : + bool warn_user_about_cleanup; : int rv; : int fd; : char buffer[DEVCTL_MAXBUF]; : @@ -804,6 +805,17 @@ : new_client(server_fd); : } : close(fd); : + close(server_fd); : + : + if (unlink(PIPE) =3D=3D 0) { : + cfg.remove_pidfile(); : + warn_user_about_cleanup =3D false; : + } else : + warn_user_about_cleanup =3D true; : + : + if (warn_user_about_cleanup =3D=3D true) : + warn("cleanup failed"); : + Why not fix pidfile_open to not return a file handle when the PID doesn't match? Seems like a bug to me in that routine as well. Warner
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20100627.155004.49280345238493664.imp>