Skip site navigation (1)Skip section navigation (2)
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>