Hi! On Tue, 2013-05-21 at 23:28:10 +0200, Christoph Egger wrote: > Just noticed: stopping mpd works fine *unless* it's during the > upgrade. I'll look into it. > > Christoph > > Some more information: > -- > christoph@mitoraj {1} ~ > 23:25 0 % sudo start-stop-daemon --stop --oknodo --retry 5 --pidfile > /run/mpd/pid --exec /usr/bin/mpd > No /usr/bin/mpd found running; none killed. > christoph@mitoraj {1} ~ > 23:25 0 % ps auxf | grep mpd > 1000 5772 0.0 0.0 9108 1548 ? S+ 23:25 0:00 > \_ grep mpd > mpd 4657 0.0 0.1 365148 15628 ? Ss 23:24 0:00 /usr/bin/mpd > /etc/mpd.conf > christoph@mitoraj {1} ~ > 23:25 0 % cat /run/mpd/pid > 4657 > -- > > Wild guess: > > start-stop-daemon on bsd acting weird iff the actual binary on > /usr/bin/mpd (--exec) is not the same (inode-wise) as the running > one.
Yeah the problem here is on s-s-d. > Open question: > > Why does it work on linux just fine / is only mpd breaking on *kbsd The /proc/<PID>/exe and other native equivalent implementations on BSDs do not give anything meaningful when the inode has been removed, and as it stands s-s-d uses the Linux method on kFreeBSD. We noticed this last year (see #652575, CCed to debian-bsd), and I played with different methods, but there's currently no way to retrieve the exec path from a process whose executable has been removed (not even with sysctl KERN_PROC_PATHNAME, only Linux and HPUX seem to have sane interfaces for this). I'll recheck my notes to make sure though. Handling this was on my TODO for dpkg 1.17.x, and I guess I'll have to switch the --exec option on kFreeBSD to use the KVM method, which is unfortunately based on the process argv... If someone has some other idea, I'm happy to evaluate it and implement it for s-s-d. Thanks, Guillem -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org