Date: Wed, 1 Jun 2016 12:13:27 +0200 From: Adam Lindberg <adam.lindberg@wooga.net> To: Ian Smith <smithi@nimnet.asn.au> Cc: RW <rwmaillists@googlemail.com>, freebsd-questions@freebsd.org Subject: Re: Pidfile generated by /usr/sbin/daemon not usable by rc.d script Message-ID: <6ECB89F6-4410-47D2-AA9B-1EA63B334CF0@wooga.net> In-Reply-To: <20160526193917.C15883@sola.nimnet.asn.au> References: <mailman.4774.1464215826.64914.freebsd-questions@freebsd.org> <20160526193917.C15883@sola.nimnet.asn.au>
next in thread | previous in thread | raw e-mail | index | archive | help
Sorry for the late reply. What we observed was that the `read _pid _junk < $_pidfile` line did = indeed work on the command line, after sourcing /etc/rc.subr. For some = strange reason it seems not to work from inside the service script for = us. Cheers, Adam -- Adam Lindberg | Backend Engineer Wooga GmbH | Saarbr=C3=BCcker Str. 38 | D-10405 Berlin Place of business: Berlin Registered at the local court Berlin-Charlottenburg, HRB 117846 B Managing Directors: Jens Begemann, Philipp M=C3=B6ser, Jan Miczaika > On 26 May 2016, at 12:10 , Ian Smith <smithi@nimnet.asn.au> wrote: >=20 > In freebsd-questions Digest, Vol 625, Issue 4, Message: 19 > On Wed, 25 May 2016 20:26:56 +0100 RW <rwmaillists@googlemail.com> = wrote: >> On Wed, 25 May 2016 17:12:36 +0200 >> Adam Lindberg wrote: >>=20 >>> Hi, >>>=20 >>> I don?t know what powerd is and how it factors into this. :-) >>=20 >> It's an example of a daemon that generates a pid file without a >> newline, and yet "stop" and "status" work. >>=20 >> It turns out that /etc/rc.d/powerd doesn't define pidfile, in which >> case rc.subr finds the pid from the output of ps. So it's not a >> counter-example and it does appear to be a bug that rc.subr can't = cope >> with a pid file without a newline. >>=20 >> You could use the same method, but using sed seems safer. >=20 > Just as another data point, from a 9.3 system (if relevant), where the=20= > majority of pidfiles have no trailing newline; no obvious consistency: >=20 > root@x200:~ # sh -c 'for i in /var/run/*.pid ; do echo $i; hd $i; = done' > /var/run/consolekit.pid > 00000000 39 31 31 0a |911.| > 00000004 > /var/run/cron.pid > 00000000 38 35 31 |851| > 00000003 > /var/run/devd.pid > 00000000 34 32 37 |427| > 00000003 > /var/run/dhclient.em0.pid > 00000000 33 34 38 |348| > 00000003 > /var/run/moused.pid > 00000000 37 31 39 |719| > 00000003 > /var/run/ntpd.pid > 00000000 36 39 32 |692| > 00000003 > /var/run/powerd.pid > 00000000 36 39 35 |695| > 00000003 > /var/run/sendmail.pid > 00000000 38 32 34 0a 2f 75 73 72 2f 73 62 69 6e 2f 73 65 = |824./usr/sbin/se| > 00000010 6e 64 6d 61 69 6c 20 2d 4c 20 73 6d 2d 6d 74 61 |ndmail -L = sm-mta| > 00000020 20 2d 62 64 20 2d 71 33 30 6d 20 2d 4f 44 61 65 | -bd = -q30m -ODae| > 00000030 6d 6f 6e 50 6f 72 74 4f 70 74 69 6f 6e 73 3d 41 = |monPortOptions=3DA| > 00000040 64 64 72 3d 6c 6f 63 61 6c 68 6f 73 74 0a = |ddr=3Dlocalhost.| > 0000004e > /var/run/sshd.pid > 00000000 38 30 31 0a |801.| > 00000004 > /var/run/syslog.pid > 00000000 35 39 30 |590| > 00000003 >=20 > check_pidfile in /etc/rc.subr (at 9.3 and in head I see) uses: > read _pid _junk < $_pidfile > which extracts pids ok with or without the newline. Don't suppose the=20= > behaviour of read in sh(1) might have changed in terms of separating=20= > words or in whitespace reckoning? Otherwise this is rather = mysterious. >=20 > cheers, Ian
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?6ECB89F6-4410-47D2-AA9B-1EA63B334CF0>