[12:06] So I have some experience with system jobs, and am experimenting with session jobs on 13.10. Am I correct that there currently are no dpkg hooks or other package magic for dealing with sessions jobs? [12:07] For example, I was surprised that my session job wasn't shutdown when the package was removed (what I would expect with a system job). [12:18] jderose: correct. [12:19] jderose: upstart upstream doesn't define what the behaviour should be, distributions do. [12:19] xnox: is that something planned for the future? is there a current best practice i should follow for shutting down a session job when the package delivering the foo.conf file is removed? [12:19] jderose: so what should happen on package upgrade/downgrade/install/remove/purge/configure/deconfigure is something for a distribution to define. [12:19] jderose: Debian policy doesn't define it, nor do Ubuntu policies. [12:20] xnox: so in the case of ubuntu then... well there ever be similar behavior to how system jobs are currently handled? [12:20] jderose: you should not start, nor shutdown jobs on install/removal. [12:20] jderose: because e.g. a package is removed during upgrade, and the current instance should keep on running, otherwise you may cause data loss. [12:21] jderose: at the moment Ubuntu policy is following the general guidelines of Debian, where user running processes / data / any files in $HOME should not be modified. [12:22] jderose: i cannot speculate what may or may not happen, as no discussions about the Policy for the user sessions jobs has happened yet. [12:22] gotcha, thanks [12:22] jderose: if you want a better opinion / discussion about this, please start a discussion on ubuntu-devel-discuss or ubuntu-devel mailing lists. [12:23] xnox: which list is better for this sort of thing? [12:23] also, thanks for your help :) [12:23] jderose: ubuntu-devel-discuss, or if you have access (ubuntu membership) ubuntu-devel. [12:25] okay, ubuntu-devel it is then [12:59] xnox: so i notice that none of the session jobs in ubuntu 13.10 are using any 'start on dbus-activation org.foo.Bar'... is this feature not considered stable enough yet, or is it just a matter of things transitioning still? [12:59] jderose: as in to start job when a given bus name appears? [13:00] jderose: (the syntax you provide is not correct, and i am not sure specifically what you mean) [13:00] maybe i'm misunderstanding the features... i was thinking start when that bus name is requested [13:00] xnox: i was looking at the example here - http://upstart.ubuntu.com/cookbook/#run-a-job-when-a-user-logs-in [13:01] and also looking at the comment in /usr/share/upstart/sessions/hud.conf [13:01] jderose: 11.13 section does not work in Ubuntu 13.10, therefore please don't try to use it. [13:02] xnox: okay, thanks :) [13:02] jderose: it is on track to get fixed in Ubuntu 14.04 [13:02] jderose: there are some other releases were it does work, can't remember off the top of my head at the moment. [13:05] xnox: hmm, so in 13.10, if you did `stop hud` and then requested something from com.canonical.hud over DBus, would you end up with a hud instance that upstart wasn't aware of, wasn't managing? [13:08] no. hud will be started again under upstart. [13:11] ah, /usr/lib/x86_64-linux-gnu/hud/dbus-activation-hack.sh, okay, now i understand :) [13:19] jderose: please don't follow that as best practices example. just wait until dbus-activation proper will be fixed in 14.04 and then all of these hacks will be gone. [13:24] xnox: so my DBus service currently uses an xdg autostart file to start after login, and then DBus activation to start it otherwise if it's not running for whatever reason. if i switch to upstart for my remaining 13.10 releases, what do you recommend i do? wouldn't i need to use an approach like the dbus-activation-hack.sh? [13:26] jderose: does your service ever self-shutdown? if not that simply add upstart job + xdg override in /usr/share/upstart/xdg/ (such that xdg-autostart is disabled under upstart) [13:26] and still keep the normal xdg autostart [13:28] no, doesn't self shutdown... sure run for the entire desktop session. [13:29] xnox: thanks for explaining /usr/share/upstart/xdg/... i was wondering why packages with session jobs were still including an xdg autostart .desktop file [13:33] xnox: one issue i see with the above: session jobs don't seem to automatically get started when the package is installed. so if a user installs my app and (without logging out or rebooting) opens one of the UI bits which needs the service, i'd get a instance of the service started through dbus activation, that upstart doesn't know about... right? [13:33] yes, and that's absolutely fine. [13:34] upstart user sessions is optional, and on other desktop environments without upstart in user session it should still work as per above. [13:40] so what i'm trying to fix with upstart is that in my very quirky use case, i need to be careful to cleanly shutdown the service otherwise i end up with a lingering couchdb process that lives on even *after* the user logs out (which will cause untold havoc should the user log back in) [13:40] currently i'm using org.gnome.SessionManager, but it's a bit fragile and doesn't work on the other ubuntu flavors [13:41] but upstart seems to do the trick, when it stops the service i don't have any lingering processes is the process group, even without using org.gnome.SessionManager [13:42] ie, why i'm not keen to have an instance of the service that isn't managed by upstart :) [13:43] xnox: anyway, thanks again for all the help! you seem to help me no matter what irc channel i'm asking questions in =D [13:56] jderose: add a second job, which "start on desktop-end" (or whatever the event is) which properly finds and kills _your_ coundbs and not anybody elses. [13:57] jderose: you should have started with that question. [13:57] jderose: "i have run away processes, how do i reliably kill them on logout?" [13:57] jderose: instead of making up a solution, and then asking how to implement your solution. =) [13:59] well, but assuming the service *is* managed by upstart, i don't have any issues with the run away process. the only missing thing is lack of dbus activation in upstart for 13.10. [13:59] but i see your point. either way, i learned a lot more about upstart :) [17:11] xnox: interesting, so even without a session job, without my org.gnome.SessionManager hack, on 13.10 i don't have any lingering couchdb processes after logout [17:12] whereas on 13.04 if i turn off my org.gnome.SessionManager hack, there is definitely a couchdb process still running after logout [17:13] jderose: i believe on 13.10, session init upstart does make a prctl call to make sure all processes are parented to session-init and do not get reparented to pid1. [17:13] so i guess the difference must be that the upstart managed user session is just much better at properly cleaning up after itself, even stuff that wasn't an explicit session job [17:14] jderose: can you look and compare the ps tree? and check whos is the parent of couchdb? [17:14] yeah, just a sec... [17:26] xnox: yeah, after logout the parent of couchdb is 1