=== ..[topic/#upstart:theCore] : Upstart 0.3.2 | http://upstart.ubuntu.com/ | http://upstart.ubuntu.com/wiki/ | http://upstart.ubuntu.com/doc/getting-started.html | irc logs: http://people.ubuntu.com/~fabbione/irclogs === maro [n=mark@0x55511dab.adsl.cybercity.dk] has joined #upstart === j_ack_ [n=rudi@p508DAC41.dip0.t-ipconnect.de] has joined #upstart === j_ack [n=rudi@p508D8D74.dip0.t-ipconnect.de] has joined #upstart === Md [i=md@freenode/staff/md] has joined #upstart === jvtm [i=jvtm@atlantis.spoon.fi] has left #upstart ["poof"] === Keybuk [n=scott@quest.netsplit.com] has joined #upstart === jonibo [n=jonas@213.212.2.215] has joined #upstart [04:10] phew [04:10] it looks like the upstart test failures on the buildds is caused by EELMO [04:10] I suspect their kernels have inotify disabled [04:14] EELMO? [04:16] elmo likes to build custom, module-less kernels [04:18] oh, heh :) [04:19] <_ion> Why not just run stock kernels on buildds? [04:19] because they scare him [05:17] fear is a mind killer, or something [05:22] heh === jonibo [n=jonas@213.212.2.215] has left #upstart [] === theCore [n=alex@ubuntu/member/theCore] has joined #upstart [06:15] nice. on site interview next week. === wasabi cheer. [06:24] wasabi: sweet [06:48] the Getting Started page link to example jobs is 404 [06:51] fixed [06:51] thanks :) [06:52] as much as people are going to hate me for it (not necessarily *in here*), I am trying to get upstart working on Gentoo [06:56] seems to be quite popular :) === Keybuk peers at libdbus === AlexExtreme prods at libdbus [07:47] not one of my favourite libs... [07:47] ;) [07:47] I like it about as much as implementing my own IPC [07:47] not very much [07:47] heh [07:47] trying to decide whether the init/initctl communication should be done with a peer-to-peer libdbus connection [07:48] and whether that'll make it easier on the code at each end [07:48] but still, upstart already has it's own IPC which works for the purpose intended, why change it? [07:48] because it's a pain in the arse [07:48] in fact, upstart has two different IPCs [07:49] oh? [07:50] the one it uses between init and initctl [07:50] and the one it uses when it re-execs itself after an upgrade to transfer job/event state [07:50] I'd rather there was just one [07:50] ah [07:50] and I'd rather that one was actually easy to deal with [08:09] e.g. right now, to send job information from one process to the oehter [08:09] upstart packs that into an UpstartMsg struct [08:09] which has a UpstartJobStatusMsg struct inside it [08:10] message->job-status.name = ... [08:10] and tags the UpstartMsg struct with the type [08:10] message->type = UPSTART_JOB_STATUS; [08:10] then has to arrange for that to be sent asynchronously to the requesting/subscribed process [08:11] so it has to _COPY_ that structure into a ControlMsg struct for each process that could receive it, a field at a time [08:11] when the socket is writable, it then grabs the info, and packs it into an iovec buffer [08:11] and writes it to the receiving process [08:11] which has to unpack the iovec buffer into an UpstartMsg struct [08:11] right, so the point you're trying to make is that is far too complex and also reinvents the wheel (doing something dbus already does) ? [08:11] examine the type to determine what message type it is [08:12] unpack the info from the message->job_status struct back into a Job [08:12] and only then decide whether *it* needs to send a reply [08:12] etc. [08:12] yeah [08:12] it's a pain in the arse :p [08:12] sounds like it :) [08:12] I'm not sure that something like libdbus is any better though [08:13] hmm [08:15] I suspect the problem is the method of IPC [08:15] e.g. "send me the status of job FOO" => "bulk reply of job foo" [08:23] bbl === treepio [n=pine@88-212-90-121.vl20-cph.dhcp.clearwire.dk] has joined #upstart === eMish [n=lerner@bzq-84-109-21-106.red.bezeqint.net] has joined #upstart [09:30] I have several questions about updtart [09:30] upstart [09:31] (1) Does it come without automatic convertor of inittab to it's /etc/event.d ? [09:31] (2) DO I need to convert all of /etc/init.d, /etc.rcN.d to /etc/event.d ? [09:31] (3) can upstart run alonside with old init ? [09:34] 1 - the ubuntu package has one that handles getty and control-alt-delete changes [09:34] not kuubuntu, the upstart itself [09:34] 2 - no, there are example jobs on the website that handle running the /etc/rcN.d directories alongside upstart jobs; therefore you can convert them at your leisure, or even not at all [09:35] 3 - what do you mean by "old init" ? [09:35] ok, actually I'd prefer (3), running it alongside existing init then. Can I ? [09:35] eMish: the tarball itself doesn't contain the perl script, mostly by omission at the moment [09:35] eMish: the existing /sbin/init -- or the existing /etc/init.d stuff? [09:35] yes [09:35] doesn't upstart want to overwrite it ? [09:35] yes to which? [09:36] i compiled upstart and saw that upstart contains init [09:36] is it supposed to be a replcement for /sbin/init and the inittab ? [09:37] can I run upstart alongside with existing /sbin/init ? [09:37] it's a replacement for /sbin/init [09:37] can I run upstart alongside with existing /sbin/init ? [09:37] so no, you cannot run it alongside the existing one [09:37] fuck [09:37] anyway [09:37] you can install it to a different location, and alternate between them at boot time [09:37] heh [09:38] it's OS [09:38] anyway [09:38] ie. --prefix=/opt/upstart then boot with init=/opt/upstart/sbin/init [09:38] no, that's irrelevant [09:38] i want old init and upstart together [09:38] what's the context for wanting to run it "along side" ? [09:38] heh [09:38] wait [09:39] does upstart has ability to specify, per job, a "health-checking script" that tells if process is ok or needs to be restarted ? [09:40] and that needs to be run periodically ? [09:40] it's a planned feature, yes [09:40] good [09:40] (upstart's still in development, so often the answer tends to be "yup, on the list") [09:40] why exactly it can't be run alongside old init ? [09:41] because it's process #1 [09:41] it's designed to be process #1 [09:41] why it can't be process # 123 ? [09:41] because then it wouldn't be the parent of all daemon processes [09:41] so couldn't supervise them [09:41] i want to invoke upstart-init from old init [09:41] ah, i see [09:42] by assuming it's process #1, it can take advantage of several tricks [09:42] why wouldn't it just understand old inittab format then [09:42] it's intended to be a complete replacement [09:42] to allow for gradual and smooth igration [09:42] revolution, yes [09:42] nobody in reality modifies /etc/inittab much [09:42] just old hands who know about it [09:42] i do all the time [09:42] most people believe that init starts at /etc/init.d [09:42] so we decided to begin compatibility there [09:43] i believe you made couple of mistakes forgetting about "backward compatibility" [09:43] an /etc/inittab parser can easily be written that registers jobs with upstart [09:43] such as? [09:43] such as not parsing old /etc/inittab format [09:43] so I could migrate tasks one by one by rewriting lines and sending -HUP 1 [09:43] why is that a mistake? [09:44] why forgetting about backward compat is what ? [09:44] seriously, you'll find that in 99% of Linux installations, /etc/inittab is unmodified from what the distro installed [09:44] i fall into 1% [09:44] i always fall into that 1% [09:44] I'm not disputing that [09:45] that 1%, however, is either [09:45] of course those 99% are happy with old init [09:45] a) set in their ways, so unlikely to switch [09:45] b) technically competent enough to switch by hand [09:45] look, you're the guy which can help me [09:45] we have small router appliance, linux0-based of course [09:45] and we have our own process management [09:45] written in C by some bum [09:46] heh [09:46] I'm not following why you're using Upstart before you've ported your process. [09:46] i am fixinf bugs in it and the more i fix it the worse it looks [09:46] i'm looking for a comlpete repalcement [09:46] pretty much similar to our story; we had a small linux distribution and realised we needed some kind of process management, so we wrote Upstart [09:46] the big missing part is, we need to specify health-checking cripts for each process [09:47] actually now that i think about it, i think checking script can restart the process [09:47] but how would i schedule health-scheking script with upstart ? [09:48] but i don't understand the installation part. /etc/eventd.d is empty [09:48] in theory? (not yet implemented) [09:48] am I supposed to convert inittab manually myself ? [09:48] something like "hourly from started JOB until stopping JOB" [09:48] in the job definition of the checking script [09:48] i trid initng, doesn't ghave this, too [09:48] what do you think about initng [09:49] eMish: yes, or use the example jobs tarball which is based on Ubuntu's inittab [09:49] i don't understand [09:49] init-ng is an excellent implementation of a dependency-based init system [09:49] upstart and init-ng are so different, I don't really see them as competitors [09:49] not automatically converting your existing setup if the mistake initng have, too [09:50] different ? both try to replce your /sbin/init [09:50] yes, but both replace it with things that are fundamentally different [09:50] to the original /sbin/init, as well as to each other [09:50] so, first, to answer the converting the existing setup problem ... [09:50] upstart is still in development [09:50] we're releasing early, and often [09:50] and are not far past the "early" stage [09:51] I see [09:51] the 0.2 series was "get a daemon written that's good enough to do the job of sysvinit" [09:51] the 0.3 series is going to be "have something that's good enough to do a much better job" [09:51] i didn't realise it's early [09:51] by the time we reach 1.0, I fully suspect we'll have a suite of migration and compatibility tools for people to deploy [09:52] i want char-based (curses) service controller [09:52] so i can walk list of services and enable/disable them [09:52] stop/start [09:52] add services, too [09:52] (phone call, brb) [09:56] look in util at initctl :) [09:58] I made 'make install', am I screwed up now ? I see that /sbin/init is not replaced [10:00] it probably went to /usr/local/sbin ? [10:00] yea === juergbi [n=juerg@80-219-26-249.dclient.hispeed.ch] has joined #upstart === Amaranth [n=travis@ip68-229-188-84.om.om.cox.net] has joined #upstart