I did say that. The reason is described pretty well here [APUE section 13.3](http://books.google.com/books?id=_kpsAQAAQBAJ&lpg=PA466&ots=F8Ct3ZPUP-&dq=advanced%20programming%20in%20the%20unix%20environment%20section%2013.3&pg=PA466#v=onepage&q=advanced%20programming%20in%20the%20unix%20environment%20section%2013.3&f=false), it prevents sniproxy from acquiring a controlling terminal. Unfortunately systemd requires the PID file to be written before the (grand) parent process exits, fixing this using a pipe.

Thanks!