<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Mon, Mar 28, 2016 at 9:45 PM, John <span dir="ltr"><<a href="mailto:da_audiophile@yahoo.com" target="_blank">da_audiophile@yahoo.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">I am trying to write a service that will start and stop kodi[1] on Linux.  The best working draft I have so far is here[2] but it does not end in a clean state if I `systemctl stop kodi` so I am looking for a good way to use an ExecStop= statement or perhaps even rewrite the service entirely.<br>
<br>
Attached is the output of a `systemctl stop kodi` to illustrate:<br>
<br>
% journalctl -b -u kodi<br>
-- Logs begin at Sun 2016-03-20 16:00:01 EDT, end at Mon 2016-03-28 10:47:39 EDT. --<br>
Mar 28 10:46:21 ruby systemd[1]: Started Starts instance of Kodi using xinit.<br>
Mar 28 10:46:21 ruby systemd[572]: pam_unix(login:session): session opened for user kodi by (uid=0)<br>
Mar 28 10:47:20 ruby systemd[1]: Stopping Starts instance of Kodi using xinit...<br>
Mar 28 10:47:20 ruby systemd[733]: pam_unix(login:session): session opened for user kodi by (uid=0)<br>
Mar 28 10:47:20 ruby systemd[733]: pam_systemd(login:session): Cannot create session: Already occupied by a session<br>
Mar 28 10:47:20 ruby systemd[1]: kodi.service: Control process exited, code=exited status=1<br>
Mar 28 10:47:21 ruby systemd[1]: kodi.service: Main process exited, code=exited, status=1/FAILURE<br>
Mar 28 10:47:21 ruby systemd[1]: Stopped Starts instance of Kodi using xinit.<br>
Mar 28 10:47:21 ruby systemd[1]: kodi.service: Unit entered failed state.<br>
Mar 28 10:47:21 ruby systemd[1]: kodi.service: Failed with result 'exit-code'.<br>
<br>
Interestingly, if I add the following line, the service does stop cleanly but the permissions on /dev/null gets screwed-up: ExecStop=/usr/bin/pkill kodi<br>
<br>
Before I stop the service:<br>
% ls -lh /dev/null<br>
crw-rw-rw- 1 root root 1, 3 Mar 28 14:20 /dev/null<br>
<br>
After I stop the service:<br>
% ls -lh /dev/null<br>
crw--w---- 1 kodi root 1, 3 Mar 28 14:20 /dev/null<br></blockquote><div><br></div><div>Those actually look like typical permissions that a /dev/tty* device would have, so my guess would be that xinit (or something) first sets its stdout to g-w (0600) on startup, to avoid being disturbed, and later tries to set it back to g+w (0620) without actually checking whether its stdout is still a tty...</div></div><div><br></div>-- <br><div class="gmail_signature"><div dir="ltr">Mantas Mikulėnas <<a href="mailto:grawity@gmail.com" target="_blank">grawity@gmail.com</a>></div></div>
</div></div>