#upstart 2007-01-02 <Zzzot> help <Zzzot> I am trying to improve the performance of my kubuntu6.10 system. some tips/tricks that I have read say to remove unneeded ttys from /etc/inittab how would i do this with upstart? <Zzzot> would I remove the files from /etc/event.d? for example: /etc/event.d/tty6? <Md> it will not help unless you are *horribly* tight on RAM <Zzzot> Do I have the idea correct? would I remove the files from /etc/event.d? for example: /etc/event.d/tty6? <gnutz> /msg nickserv link gnutz workhard <Keybuk> gnutz: you may want to change your password ;) <gnutz> LOL <gnutz> Im a dame nubie <gnutz> damm <AlexExtreme> heh <gnutz> So I guess I just exploted my user account <gnutz> LOL <AlexExtreme> yeah <gnutz> So is this an Ubuntu room? <AlexExtreme> /msg nickserv set password will help <AlexExtreme> gnutz, it's for the init program used in Ubuntu <gnutz> ok thx <gnutz> init? <gnutz> what is that? <AlexExtreme> gnutz, init is the program which boots up a linux system <wasabi> I'm curious how you managed to join the channel. <gnutz> o the Kernal? <AlexExtreme> gnutz, no, it's the thing that's run once the kernel is loaded <gnutz> wasabi try /list then click <gnutz> Ok like a gnome / xsever type of thing? <AlexExtreme> no <gnutz> Never mind sorry Ill google it <AlexExtreme> gnutz, http://en.wikipedia.org/wiki/Init might help you understand what init does <gnutz> Cool Im reading up on it <gnutz> Hey I do have a relitive question <gnutz> I have dual boot XP ntfs on fisrt part then EXT3 with Unbuntu on the 2nd part <gnutz> some times I'll boot outta XP and into Ubuntu and it will freeze <AlexExtreme> XP freezes? or Ubuntu? <gnutz> then I'll hard boot and Ubuntu will finale boot up <gnutz> Ubuntu <AlexExtreme> strange <gnutz> Im wondering if Ubuntu is corrpting the MBR <gnutz> or its a NTFS issue <AlexExtreme> you should probably ask in #ubuntu <AlexExtreme> just type /j #ubuntu <gnutz> cool Alex thnx <Keybuk> http://einit.sourceforge.net/ <Keybuk> No real shell scripts, no inittab, no runlevels and a configuration file in XML <Keybuk> nice to see people refer to upstart :) <AlexExtreme> Keybuk, strange, I was just reading that at the exact same time as you... :P <Keybuk> http://einit.sourceforge.net/documentation/users/introduction-differences-upstart.html <Keybuk> heh <Keybuk> I'd be interested to see how it's "partially event-based" <AlexExtreme> yes... I don't quite get how that would work <Keybuk> I guess it's actually as event-based as upstart <Keybuk> actually, it looks rather strange <Keybuk> to my eyes, anyway; I guess it makes sense to the author <AlexExtreme> It must do, otherwise he/she wouldn't have written it <Keybuk> the embedded market does seem to be the focus <Keybuk> e.g. having just one config file for every single job/task/service/module/mode <Keybuk> makes it hard for a distribution though, as packages can't extend it <AlexExtreme> yes <AlexExtreme> the first design flaw that will make it difficult for a distro to adopt it ;) <Keybuk> I doubt their aiming for that <AlexExtreme> interesting.... there's a file in it's source called "bitch.c" <AlexExtreme> with a "bitch" function <Keybuk> dpkg has an ohshit() function <Keybuk> and an onshite() function <Keybuk> the difference being that onshite() appends strerror() to the error message :p <AlexExtreme> really? :) <Keybuk> I'm hardly in a position to diss someone for NIHing an init daemon <g> <Keybuk> I wish them well <AlexExtreme> may I ask, what does NIH stand for? <Keybuk> Not Implemented Here <Keybuk> or Not Invented Here <AlexExtreme> ah <Keybuk> it's usually used in a derogative sense if someone goes and reinvents a wheel <Keybuk> or writes code themselves that already existed elsewhere <Keybuk> the focus really does seem to be writing everything in C <Keybuk> cf. the modules subdir <Keybuk> it has C code to do things like set the hostname, mount a filesystem, fork getty, etc. <Keybuk> whereas we'd use shell code for that <AlexExtreme> Keybuk, question: when do you think the current specifications for upstart be implemented? just so I know if upstart will be ready for Frugalware 0.6, or whether I'll need to delay inclusion of upstart until 0.7 <Keybuk> I'm aiming for over the next two weeks <AlexExtreme> hmm# <AlexExtreme> would be in time for rc1, if I work hard on the jobs... but after rc1 will have to be delayed <AlexExtreme> mental note: stop thinking out loud <Keybuk> heh <Keybuk> nothing wrong with thinking out loud, I do it all the time <AlexExtreme> :p <Keybuk> it's been delayed a bit from my original plan because I've changed roles at Canonical <Md> what are you working on now/ <Md> ? <Keybuk> I'm a manager now; in charge of one of the two teams that develop Ubuntu <AlexExtreme> ah <Keybuk> I'll be still doing a fair amount of development work as well, ie. initramfs/udev/upstart <Keybuk> but the transition meant that I didn't get as much chance as I'd've liked before xmas #upstart 2007-01-03 <aegis> Hi ...I need some help from a staff member please. <AlexExtreme> why are you asking here? <AlexExtreme> you mean a freenode staff member? <aegis> Just hoping there might be one here. <aegis> Cant even type in there <AlexExtreme> well I think Md is, but you'd be better to type /stats p to get a list of staff members available <aegis> Yeah....I cant even find where he is... <AlexExtreme> which channel is this? <AlexExtreme> I mean the one you said you can't even type in <aegis> Freenode <Keybuk> meh, coming up with computer game names is getting increasingly harder :-/ <AlexExtreme> heh <Keybuk> good ones, anyway <Keybuk> hmm, that's kinda dump <Keybuk> this doesn't have its MAC address printed on the bottom #upstart 2007-01-04 * Starting logfile irclogs/upstart.log <AlexExtreme> btw Keybuk, I don't know if you knew already but I just noticed Fedora is planning to switch to a new init system in FC7, and Upstart is one of 3 candidates. The other 2 are initng and launchd <Keybuk> AlexExtreme: interesting, reference? <AlexExtreme> http://fedoraproject.org/wiki/Releases/FeatureNewInit <Keybuk> (brb) <AlexExtreme> wb <AlexExtreme> there's also this: https://www.redhat.com/archives/fedora-advisory-board/2006-December/msg00170.html <Keybuk> back <AlexExtreme> gotta go, night <Keybuk> interesting <Keybuk> thanks for pointing that out! <Keybuk> hopefully they'll have someone at LCA? * Keybuk wonders whether it would be worth e-mailing them to see if they'd like assistance <_ion> It probably would be a good idea to tell them about the upstart's "schedule". <_ion> s/the // <Keybuk> indeed <Keybuk> "Now until LCA = Keybuk doesn't sleep, and writes it" <Keybuk> "LCA = Keybuk doesn't sleep, and fixes it" <Keybuk> (brb - food) <_ion> :-) #upstart 2007-01-05 <CNW8835> hi <CNW8835> if anyone is watching this channel... <CNW8835> is there anyway to tell upstart to boot into a specified runlevel as a boot paramiter? <CNW8835> I tried doing it the way it was done with sysvinit, just by setting the desired runlevel number as a boot parameter, but it doesn't seem to work that way with upstart <CNW8835> and I can't find anything in the documentation about it other than changing the default runlevel <Amaranth> sorry, setting something up <_ion> (offtopic) A hypothetical example of creating a data structure out of thin air, http://johan.kiviniemi.name/stuff/ruby/acme/pair.html <Keybuk> ? <_ion> Just a bizarre way of implementing a "pair" data structure without using an array or any other existing data structures. <Keybuk> very lispish <_ion> Yes. <Keybuk> meh, don't you just hate it when you think you've got something exactly right, and then hit a snag? <_ion> Yeah. What is it? <Keybuk> have streamlined all the IPC code, so it's a zillion times more efficient and easier to code <Keybuk> but now it's difficult when sending a message and getting ECONNREFUSED to find out what pid it was going to, and thus remove that pid from the subscription list <_ion> Hmm, ok. <Keybuk> it's in the message, but encoded inside the destination address <Keybuk> that's kinda cool <Keybuk> I've got a process that I can't kill or ptrace <Keybuk> even SysRq K didn't kill it <Keybuk> sweet <_ion> Heh, what caused that? <Keybuk> for (;;) malloc () <Keybuk> roughly <_ion> Heh. :-) <Keybuk> "don't use recvmsg() on connected sockets, for returning zero to mean 'disconnected' will surprise you" #upstart 2007-01-06 <AlexExtreme> sheesh <AlexExtreme> *finally* got linux up and running on my new machine, there seems to be a kernel bug with something in it <AlexExtreme> does ubuntu have any issues with Athlon 64 X2 processors or nForce 550 boards? <Keybuk> not that I'm aware of <Keybuk> what was happening? <AlexExtreme> I get a kernel panic on boot with apic, it'll only boot with noapic on the command line <AlexExtreme> happens with every kernel I've tried so far <Keybuk> kernel bug, most likely <Keybuk> or motherboard bug <Keybuk> tried updating the bios? <AlexExtreme> yep, it's the latest revision <AlexExtreme> it wouldn't even boot more than once without resetting CMOS on the BIOS it came with <Keybuk> heh <Keybuk> seems a common problem with that board according to the interwobble <AlexExtreme> interwobble? <Keybuk> web <AlexExtreme> ah <AlexExtreme> it's an abit KN9S board <_ion> Seems like abit knows how to make buggy hardware. ;-) <_ion> Case in point: Abit BP6, which i happen to have. <AlexExtreme> what problems do you have with that? <_ion> Its ATA66 controller is notorious for being almost unusable. I ended up buying a PCI SATA controller. <AlexExtreme> ah <AlexExtreme> sata on this board is fine <AlexExtreme> it's just those BIOS bugs (solved with update) and the apic bug <AlexExtreme> what mystifies me, is why it shipped with the original BIOS revision from july or something when I bought it like, 2 days ago <wasabi__> heh. there's only 3 packages in the commercial repos? <Keybuk> noapic and pci=noacpi are the Ibuprofen and Paracetemol of the Linux world <Keybuk> they cure all ills <Keybuk> I personally swear by Asus for motherboards <Keybuk> the A8N-SLI I have has never had a single problem <Keybuk> but then again, elmo had exactly the same board in a machine, and it OOPSd every time he tried to use the on-board ethernet <AlexExtreme> hah <AlexExtreme> well <wasabi__> i've got this great problem at work with the latest kernel in fiesty... <AlexExtreme> my dad's ASUS board is quite good <wasabi__> locks up on boot while "checking aperture" <Keybuk> sendmsg(3, {msg_name(22)={sa_family=AF_FILE, path=@/com/ubuntu/upstart}, msg_iov <Keybuk> (1)=[{"upstart\n\0\0\0\10\0\0\0\nrunlevel-2", 26}] , msg_controllen=0, msg_flags= <Keybuk> 0}, 0) = 26 <Keybuk> whee! <Keybuk> (and sometimes I think strace is getting too good at decoding syscalls into useful output) <_ion> [artificially sped up low voice] This channel is sponsored Pfizer <AlexExtreme> hah <_ion> Batteries not included <AlexExtreme> ahhh, good old windows. i'm setting up my old machine for my mum, it's had windows installed for barely 2 hours and it's got adware on already ;) <_ion> Why Windows? <AlexExtreme> my mum doesn't like Linux <AlexExtreme> she's used to windows and she despises change <Keybuk> does she ever upgrade Windows? <AlexExtreme> she likes 2000 <AlexExtreme> but I can't install XP on her box, because I don't have a license and don't want to pay for one <Keybuk> ring them up and ask for a key <AlexExtreme> you think it'll be that easy? ;) <Keybuk> it is <AlexExtreme> does it cost anything? <hunger> AlexExtreme: It is free. <AlexExtreme> interesting <wasabi__> what are you talking about? <Keybuk> I think they assume anyone who rings up and innocently claims that XP isn't accepting their license key, can't possibly be thieving, because no thief would ring them :p <hunger> AlexExtreme: Even ringing them up is free:-( But you are supposed to have a license. <AlexExtreme> hah <AlexExtreme> but <wasabi__> still noy legal <wasabi__> not <Keybuk> well, no :p <wasabi__> if legal wasn't a concern you could just download an iso from a torrent in about 10 minutes <AlexExtreme> I have a copy of XP with a license, but it's already installed on my sister's machine therefore installing it and activating it on another machine would mean that I'd have Microsoft's lawyers on my doorstep within 10 minutes <wasabi__> not exactly. ;) <AlexExtreme> anyway <AlexExtreme> going to test my new machine with a bit of gaming, bbl <Archenzo> Hi I i have lost my password <Archenzo> I cant chat in private <wasabi__> password for what? <Archenzo> could you help me <wasabi__> You've picked an odd channel to ask for help in. <Archenzo> irc.freenode.net wikipedia-it <Archenzo> I am registered in <wasabi__> how about #freenode? <wasabi__> does upstart have anything to do with this? <Archenzo> Sorry many thanks! By by <_ion> That was interesting. <wasabi__> happens alot for some reason * Keybuk looks at Md <Keybuk> :) <wasabi__> What, are they just following him? <Keybuk> he's a freenode staff member <Keybuk> I guess there's some command to look them up <Keybuk> then they /whois him, and join the first channel in his list <Keybuk> which happens to be this one :p <wasabi__> and they can figure out all of that <wasabi__> without realizing that upstart has nothing to do with them? <Keybuk> indeed #upstart 2007-01-07 <joh6nn> i'm trying to add a script to my boot process to turn off dma on one of my hdds (long story), and i'm very clearly going about it the wrong way, but i'm not sure where i'm falling down <joh6nn> i've looked through the wiki and the getting-started page, but i'm guessing that's only taught me enough to be dangerous, not enough to get this working <wasabi__> /etc/rc.local =) <joh6nn> just stuff it in there and it should work? <wasabi__> uh huh <joh6nn> thanks, i'll give that a shot <joh6nn> alternatively, is there a better way to disable dma for a drive at boot? <joh6nn> er. wasabi__, i must be missing something. rc.local is a basically no-op script. were you just suggesting i shove my one line in there, since it's there anyway? <wasabi__> uh huh <wasabi__> it's run during boot. it's for local stuff... to run during boot <wasabi__> this has nothing to do with upstart, btw. =) <joh6nn> yeah, normally, that'd be a fair enough answer to the question. unfortunately, i'm needing to set /dev/hdd to dma = off round about the time that the init-top scripts start getting run (possibly sooner; i may be mis-remembering at that point) <wasabi__> that would be in the initramfs <joh6nn> yeah, that was where i tried to add it first. i stuffed my own little script in there in init-top, but there's seemingly more to it than just adding new scripts to the directory; it didn't appear to run <wasabi__> have to rebuild hte initramfs <wasabi__> dpkg-reconfigure the kernel package <wasabi__> also, i dont think your drives will exists in init-top <wasabi__> maybe. ;) <joh6nn> that can't be right; i need to reconfigure the kernel package just to add a new boot script? <wasabi__> uh huh <wasabi__> that's hte initramfs <wasabi__> initramfs != boot scripts exactly. <joh6nn> ok, well, then i'm clearly going about this the wrong way. there's gotta be a better way of changing this setting then <wasabi__> i'd like to know why you have to change it <joh6nn> if it i don't, it hangs and doesn't finish booting. at a guess, the BIOS in the box isn't very good, and isn't properly handling the dma settings for the drive <wasabi__> hmm. <wasabi__> well, how far does the boot get? <joh6nn> gets to scanning to see what IDE devices are connected, and hangs at /dev/hdd <joh6nn> i've tried setting it in /etc/hdparm.conf, too, but that doesn't have any visible effect <wasabi__> It's going to be a bit hard to tell the kernel not to use dma on a device before the kernel hsa discovered hte device. <joh6nn> yeah, i'm grasping at straws, really <wasabi__> also, im not sure if the kernel even enables dma automatically in the initramfs or before <joh6nn> i've tried setting it with hdparm, and then rebooting, but that doesn't work. i'm guessing it's not working because the BIOS sees that the drive supports DMA, and turns it back on <wasabi__> hdparm affects transient kernel settings. <wasabi__> it doesn't save <joh6nn> ah <joh6nn> would be nice if the man made that clearer, eh? ; ) <wasabi__> well, anything that "saved" in linux would have to have someplace to 'save it' <wasabi__> hdparm.conf is that <wasabi__> off to bed. sorry i can't help ya much <wasabi__> night <Keybuk> random thought <Keybuk> the job definition parser currently "ignores" parser errors and just outputs warnings <Keybuk> should it abort parsing instead? <AlexExtreme> I would think so <AlexExtreme> because if there is an error, it could cause the rest of it to parse incorrectly and could cause problems <Keybuk> yeah, especially the unknown stanza bit ... <Keybuk> ned script <Keybuk> exec foo <Keybuk> end block <Keybuk> will give you <Keybuk> foo:1: ignored unknown stanza: ned <Keybuk> foo:2: ignored unknown stanza: end <Keybuk> but set the job's exec to be "foo" because exec is a valid stanza <AlexExtreme> yep #upstart 2007-01-09 <b0nn> hi all, Im trying to edit an upstart script, and I want to be sure of what I am doing before I break things :-) <b0nn> I want to link one configuration file in runlevel 4 <b0nn> but I want to link a different configuration file in runlevel 5 <b0nn> with inittab I would have added these lines <b0nn> lnk4:4:wait:/bin/ln -sf /etc/X11/xorg_vesa.conf /etc/X11/xorg.conf <b0nn> and for runlevel 5 <b0nn> lnk5:5:wait:/bin/ln -sf /etc/X11/xorg_radeon.conf /etc/X11/xorg.conf <b0nn> is it possible to just paste those directly into rc4, and rc5? <oblio> hello <oblio> i have a question about upstart - how can i make restart automatically something? <__keybuk> put "respawn" in the job definition <oblio> respawn, thought so <__keybuk> 52 revision(s) pushed. <__keybuk> whee <oblio> __keybuk: scott remnant, right? <AlexExtreme> 52 revisions? :o <_ion> keybuk: Wow. :-) <_ion> oblio: /whois <oblio> _ion: right, sorry :) <AlexExtreme> is there any way to browse a bazaar repo in launchpad? <_ion> 52 revision(s) pulled. #upstart 2007-01-10 <Keybuk> interesting <Keybuk> Jimmy has "quit" initNG <Keybuk> and some fun stats <Keybuk> development from scratch to 0.2.7 (which was in edgy) <Keybuk> 62 files changed, 19961 insertions(+) <Keybuk> development since then <Keybuk> 68 files changed, 18083 insertions(+), 9995 deletions(-) <pkt> hi Keybuk <Keybuk> hihi <pkt> how is progress on upstart scripts? <Keybuk> pkt: for feisty? we haven't formally begun them yet, though they're all mapped out <pkt> ah, ok <pkt> I 'm hoping to use upstart for my private (LFS-based) distro <Keybuk> current timeline <Keybuk> 0.3.2 today if I can <Keybuk> that fixes all of the "rushed" code in 0.2.7, and introduces a stable IPC layer, etc. <pkt> nice to hear that :-) <Keybuk> then I start on the proper features listed in the wiki for the 0.3 milestone <Keybuk> https://launchpad.net/upstart/+milestone/0.3 * pkt looks ... <Keybuk> most of those make changes to the job structure that we wanted to do the startup scripts <Keybuk> so I hope to have those done over the next week or two after 0.3.2 <Keybuk> leaving a few weeks to do the boot scripts themselves <pkt> ah, ok so you suggest to take a look again in a few weeks correct? <Keybuk> so the first run of those should be done by Feb 8th <pkt> btw, have you looked at depinit? <Keybuk> no, URL? <pkt> wait a sec .. <pkt> ha! found it http://www.nezumi.plus.com/depinit/ <pkt> It has some interesting features <pkt> like using different signals to stop daemons and shells <pkt> reliable loggers (from daemontools) etc <pkt> of course it is primitive and never had a development community with size > 1 <pkt> but it has some nice ideas to get inspiration from <Keybuk> never seen that one before <pkt> mostly only old LFSers know about it <pkt> btw, the author released a newer version and probably forgot to update the page <pkt> so the last (known to me) version is probably http://www.nezumi.plus.com/depinit/depinit-0.1.5.tar.bz2 <Keybuk> tbh, from a glance at the features list, there's not much there that'd be useful to us <Keybuk> a lot of it is to do with being a dependency-based init system, which upstart is expressly not <pkt> well some of its "side" features are interesting <pkt> like pipelines between daemons for reliable logging <pkt> I 'll probably try to port some of the interesting stuff to upstart <pkt> (assuming I 'm able to base my system on it first) <Keybuk> yeah, that bit's kinda interesting <_ion> Would 'state' work as the 'FOO'? <_ion> It's somewhat ambiguous, admittedly. <Keybuk> "the 'FOO'" ? <_ion> https://lists.ubuntu.com/archives/upstart-devel/2006-December/000200.html <AlexExtreme> hrm <AlexExtreme> Keybuk, what was the alternative to the Profiles spec? <Keybuk> Flags <Keybuk> there's no spec for that one yet <AlexExtreme> and what did it involve? passing parameters on the kernel command line? <Keybuk> profiles, iirc, involves defining lists of jobs either by include or exclude <Keybuk> so you'd have the "with networking" profile which would include jobs that are excluded by the "without networking" profile,e tc. <Keybuk> those profiles would have to be defined elsewhere <Keybuk> they're a bit like existing runlevels, or initng goals <Keybuk> and would have to be maintained by hand <AlexExtreme> yes, I wrote a spec for that <Keybuk> *nods* <Keybuk> Flags was an alternate idea <Keybuk> they'd be states that were either up or down, and set by the kernel by default <Keybuk> uh, kernel command-line <Keybuk> obviously ;p <Keybuk> so you could have a networking flag, a multi-user flag, etc. <AlexExtreme> I'd definitely prefer the profiles idea <Keybuk> jobs can then say "if FLAG" or "unless FLAG" <Keybuk> the advantage to flags is they're more flexible <Keybuk> FOO (network-up until network-down if networking) or if multi-user <AlexExtreme> but, when we write a gui to configure upstart, it would have to detect which bootloader is in use and modify it's configuration file <AlexExtreme> to set the kernel command line <Keybuk> ah no :) <Keybuk> flags are just command-less jobs <Keybuk> so there's an /etc/event.d/networking that has "start on startup" in it <Keybuk> or something like that, anyway <Keybuk> which flags were up or down is the only thing dictated by the kernel command line <Keybuk> which is the same with profiles; which profile you're in is dictated by the kernel command line <Keybuk> the difference is the method of inclusion of jobs into them <Keybuk> profiles is defined by seperate files <Keybuk> flags are defined within the job file <AlexExtreme> mmm <AlexExtreme> you've lost me :) <Keybuk> heh <Keybuk> I need to write the spec <Keybuk> or wasabi does :p <Keybuk> I don't particularly favour or disfavour either of them <AlexExtreme> i'd certainly prefer profiles <wasabi> Hmmm. <wasabi> lemmie load that back into my head <wasabi> it's long been swapped out <wasabi> I think I have a natural tendency to suport, as much as possible, alterting the obvious parts of the configuration without modifying the job files themselves. <wasabi> modifying the job files themselves introduces an upgrade issue. <wasabi> Hmm. Cept that isn't an issue. <wasabi> HMMM. <AlexExtreme> Well, flags would require some modification of job files, definitely <wasabi> So, a flag would be a job named 'flag-networking' or something. And the actual network scripts would define a level between flag-networking started and flag-networking stopped <Keybuk> if profiles are stored in a configuration file, then that still has the same upgrade issue <Keybuk> you'd end up with conflicts modifying /etc/bootprofiles <wasabi> Then you could use hte kernel commad line to make the system boot into a state where flag-networking is "started" <Keybuk> if they were directories of symlinks, otoh ... <wasabi> Which is an unnatural state, as nothing starts flag-networking, ever, except that. <wasabi> Yeah, Keybuk, that's why I just now realized it was a non-issue. <wasabi> I don't think we want users modifying profiles. <AlexExtreme> but what if they want to disable services? <wasabi> I think they'll end up being more of a tool for us. <wasabi> like safe-mode is for windows. <Keybuk> AlexExtreme: define disable <Keybuk> does disable mean that "start JOB" will return "DISABLED" <AlexExtreme> stop a service from starting <wasabi> Maybe disabling services BY THE USER, is a completely seperate act from defining run states. <Keybuk> or does it mean it's just not started by its usual events? <Keybuk> and that a sysadmin can still start it manually? <AlexExtreme> yes they could still start it manually, just wouldn't be started at boot <wasabi> How are we with adding a "disabled" line-item to the job definition? <wasabi> And making an installer merge? <wasabi> Which is what we already have I think. <wasabi> And defining boot profiles using distro-supplied files. <wasabi> Such as extra jub definitions. <wasabi> lemmie write that out once. <Keybuk> that makes adding disabled equivalent to commenting out the start events :) <AlexExtreme> basically, all I'm concerned about is having a system where you can stop services from being started at boot <Keybuk> both are job file edits <Keybuk> something in SMF(?) I liked ... <Keybuk> if you list jobs on the kernel command line, they're started at boot automatically <Keybuk> if you list them with "!" in front, they're not started <wasabi> Okay, lets wait a second, we have one up front question we need to clear up. <wasabi> Should we EXPECT< during normal OS operation, the user to edit the distributed job files to change stuff. If yes: are we willing to take care of that during hte upgrade procedure. <wasabi> There's not much doubt in my mind that "turning off a service" is normal OS operation. <wasabi> And I suspect we'll have lovely and wonderful UI's that do it in the future. <Keybuk> I think that normal users will likely only want to disable or enable services/tasks <Keybuk> advanced users may wish to configure when services/tasks are run <Keybuk> and advanced users may also wish to modify them <wasabi> Yes, we need to plan for the normal use case. <AlexExtreme> yes <wasabi> Some guy sitting down at his server and flipping a switch to turn off apache. <wasabi> That seems pretty understandable to me. <wasabi> If apache is configured wrong, that's a bug. <wasabi> Or if it starts at the wrong times so he has to edit the files, it's a bug. <wasabi> (or a missing feature) <wasabi> So, if we put "disabled" in the job file, we commit to making the upgrade scripts detect and remember it. <AlexExtreme> But I don't think editing the job file is the best way of doing it <wasabi> I'm unsure if it is. Adding one line "disabled" isn't the hardest thing to build a merge for. <AlexExtreme> If there was a line that could be added in the job file, 'required', then that job would always be started, for example in udev's job file. Then anything that hasn't got required in could be overridden. Having a line like '!foo' in say, /etc/bootprofiles, under a profile section would disable foo in the profile it's listed under <Keybuk> why is udev required? <AlexExtreme> it was just an example ;) <wasabi> one thing at a time. Are we going to merge job files? :) <Keybuk> wasabi: I tend to think that needs human intervention <AlexExtreme> It'd certainly be easier not to <Keybuk> e.g. user adds "limit core 0 0", distro adds "limit core 100 100" <Keybuk> you need a human to resolve that <wasabi> Yup. I mean, we can merge SIMPLE stuff. <wasabi> We could merge "disabled", and prompt on anything else. <wasabi> if disabled in old; if !disabled in new; add disabled to new <AlexExtreme> Prompting wouldn't be good, there are distros (including Frugalware) that don't like having the upgrade process interactive <wasabi> Prompting would only happen if the user changed stuff manually. <wasabi> Other than disabled. <AlexExtreme> It'd make 'update-manager -d' more difficult, too <Keybuk> Ubuntu forbids prompting also <Keybuk> (well, where the user didn't change anything) <wasabi> Prompting in ALL cases? Even if the USER went in and edited a text file? <wasabi> Okay. Heh. <wasabi> I would be fine with disabled being in the job files, and handled silent during upgrade. <wasabi> I think that's fairly easy to do. <wasabi> So, that takes care of the user being able to disable services from some UI of some sort. <wasabi> On to profiles. Who are these for? <wasabi> I don't, or can't yet see, any reason to support allowing users to write their own profiles. <wasabi> I suspect we'll just want to use these to drive out stuff like a Safe Mode boot prompt. <wasabi> Where X doesn't start, and maybe no networking or something. <AlexExtreme> Hmm. <wasabi> I think at it's simpliest this could be accomplished by letting the distro define a few items they want to provide to their users, no X, no network, etc... and implement those in the job files THEY distribute. <wasabi> And I think as Keybuk mentioned earlier, these are actually just flags. <AlexExtreme> All the examples I came up with in my head for using profiles can be solved with events :p <AlexExtreme> Gotta disappear for half an hour, bbl <wasabi> These don't HAVE to be anything more than a set of flags which a service can choose to check to disable itself. <_ion> Switch to libelektra and forget about any problems with syncing config files. ;-) <Keybuk> that looks a lot like gconf <Keybuk> which has the same problems :p <Keybuk> and it used leverage on the first paragraph of its website <Keybuk> hmm, there's nothing there that eliminates upgrade issues that I can see? <_ion> I was under the impression that there would be a system config tree (parts of which would be updated when upgrading software) and a user config tree (corresponding to /etc) which would override key/value pairs in the system config tree, but maybe i remembered wrong; i don't seem to find such information from the website. <Keybuk> yes <Keybuk> so then you update the system config tree <Keybuk> but if the user has logged in and used the app, they'd be using the user config tree instead <Keybuk> so wouldn't get the change <Keybuk> cf. gconf <_ion> If that happens, the system hasn't been designed correctly. <_ion> If root disables a certain job, the only thing that should be added to the user tree would be the "disabled" key. <Keybuk> bzzt <_ion> Not a full copy of the settings from the system tree. <Keybuk> that way lies madness <Keybuk> because now you have an application that has to handle BOTH v1 and v2 config keys <Keybuk> which may have different formats <Keybuk> in fact, it has to handle every possible combination of every possible key it's ever used <Keybuk> also <Keybuk> what user doesn't open up every preference dialog for a look at some point or other? <Keybuk> if you only write when the user toggles ... do you delete the key from the user tree if they put it back to the default? <Keybuk> AND to make matters worse <Keybuk> if you don't copy the entire tree <_ion> Valid points. <Keybuk> you now have the "I configured my app, was perfectly happy with it, AND AN UPGRADE CHANGED THE WAY IT WORKED!!(*"(*(*" problem <Keybuk> simply because the user didn't look at that page, or didn't toggle that option on/off, ect. <Keybuk> difficult problem :p <_ion> So it seems that whatever we do (re: the "updated config file" issue, out of upstart's context), we lose. :-) <_ion> Every path seems to have compromises. <AlexExtreme> back <AlexExtreme> All I can say is that we simply add a file in /etc containing a list of services that the user *doesn't* want to start, and upgrade wouldn't touch that. The file would be updated by a config gui or by a command line tool like gentoo's rc-update. #upstart 2007-01-14 <chillywilly> is it possible with a server running edgy to see pass/fail results of each job on boot up like it shows in /var/log/boot ? Or is it assumed you will just look at /var/log/boot to see what might've failed on boot up? <chillywilly> cause on a server I could care less about a fancy splash screen and I am more concerned with whether services started up like they are supposed to <chillywilly> but I also don't like all the extra noise remove "quiet" from the kernel params causes....I just want to see the services messages and their ok/fail statuses <chillywilly> removing* <chillywilly> seems when I remove quiet but leave splash I almost get what I want but some of the messages never show me an "ok" <chillywilly> and I definitely do not get the same output as I see in /var/log/boot #upstart 2007-01-15 <Stev2> Hello, I have a question about starting many daemons in parallel. On my system, i start httpd,smbd,nmbd,httpd,cupsd,avahid,distccd and some others all at once at boot time. Occasionaly one or more of them fail to start, and in the logs then there are errors saying could not bind to (316)288-4715:631 permission denied, or setgid(99) failed, permission denied. Anyone experience this? <Md> a randomly failing setgid is a bad, bad thing <Md> and the other problem looks related <Md> you need to understand why these daemons are being started with the wrong UID when they expect to be started by root <Stev2> I don't know how they could not be started by root, they are spawned from upstart, unless i am missing something. #upstart 2007-01-17 * Starting logfile irclogs/upstart.log <AlexExtreme> great <AlexExtreme> the linux.conf.au website has a video of Scott's upstart talk <_ion> Cool, thanks for pointing that out. And since you didn't feel like giving the URL, http://mirror.linux.org.au/pub/linux.conf.au/2007/video/talks/102.ogg :-) <AlexExtreme> heh ;) <tiolpxe-> hi can someone please tell me how i can change my runlevel from 5 to 3 using upstream i cant see anything on it <AlexExtreme> upstream? <tiolpxe-> lol i dont know why i said that <tiolpxe-> lol <AlexExtreme> ;) <AlexExtreme> well <AlexExtreme> upstart doesn't use runlevels <tiolpxe-> so ive noticed <tiolpxe-> so am i correct in thinking a telinit 3 will allow me to boot to the cli <AlexExtreme> no <tiolpxe-> is it possible to boot to the cli then? <tiolpxe-> ive read the net with no diffinitive anwers <AlexExtreme> not sure, I don't use ubuntu <tiolpxe-> well ubuntu uses upstart and surely that determines whether it can <AlexExtreme> I don't know, I don't use ubuntu, as I just said <AlexExtreme> gonna disappear for a bit <tiolpxe-> surely this is ubuntu irrelevant <tiolpxe-> im asking an upstart question <_ion> I was just writing an answer. <AlexExtreme> heh <AlexExtreme> I hate it when people don't hang around for an answer... like, they expect an answer to be typed instantaneously :p <AlexExtreme> hah <AlexExtreme> I'm watching the upstart talk, there's a bit where scott's saying what computers were like in the past, starting from 30 years ago. the machine that's pictured for 10 years ago is the exact machine that's my router ;) <_ion> :-) #upstart 2007-01-18 * ..[topic/#upstart:Keybuk] : Upstart 0.3.1 | http://upstart.ubuntu.com/ | http://upstart.ubuntu.com/wiki/ | http://upstart.ubuntu.com/doc/getting-started.html | http://www.netsplit.com/blog/articles/2006/12/14/upstart-0-3 | irc logs: http://people.ubuntu.com/~fabbione/irclogs | http://lca2007.linux.org.au/talk/102 <Keybuk> oops, battery went flat there :p <_ion> heh <Keybuk> video of my talk in the /topic now * Keybuk is reading the dbus test suite source <Keybuk> davidz was telling me about a neat malloc-fail checker they have <Keybuk> it detects which mallocs were run, and then re-runs the tests each time causing them to fail <Keybuk> though I'm trying to work out why it has a copy of gcov in it #upstart 2007-01-19 <Keybuk> it's kinda nice to hear Fedora developers use phrases like "upstart should solve this" <_ion> Hehe <_ion> Promising <_ion> md: Your quit message is too long. The IRC server truncates it at a byte that isn't at a character boundary, so the message looks like "..." in clients that assume the line to be encoded in e.g. CP1252 if it's not valid UTF-8. <Md> interesting, it used to work... <Md> _ion: looks like vim corrupted my quotes file, I need to recover it from backups <_ion> md: Corrupted? #upstart 2007-01-20 <mbiebl> AlexExtreme: how's your work with upstart on frugalware progressing? <mbiebl> Have you already started converting the legacy initscripts to upstart jobs? <AlexExtreme> Not yet, I'm waiting for scott to get some more of the planned features implemented <mbiebl> Do you already use upstart for frugalware (in compat mode)? <AlexExtreme> mbiebl, well, it's not in the official repos, but I have been using it with compat mode on my computer <AlexExtreme> brb, breakfast <AlexExtreme> back #upstart 2007-01-22 <chillywilly> anyone else run edgy on a server and notice that when you turn quiet off but the splash screen on that you do not always get pass/fail output for each script/job? <chillywilly> is there anyway to make the terminal output any prettier? <chillywilly> or more consistent for that matter #upstart 2007-01-27 <_ion> mbiebl: Hi. Did you receive my message? <mbiebl> yeah <mbiebl> I'm looking at it atm. <_ion> Thanks <mbiebl> And already filed a bug against pkg-config <mbiebl> ;-) <mbiebl> Seems as if pkg-config --variable handlersdir deskbar-applet is not working on Debian/Ubuntu <_ion> Hm, worksforme. Anyway, the change i did in the attached diff.gz doesn't need it. I thought it isn't necessary to build-depend on the whole deskbar-applet package when all you need is the knowledge of the dir /usr/lib/deskbar-applet/handlers. <mbiebl> What platform are you using? <_ion> Feisty on plain x86 <mbiebl> Had some problems loading the deskbar-applet on feisty <mbiebl> Which needs a small patch to fix. <_ion> Both deskbar-applet and the plugin from the tracker 0.5.4 package work for me. <mbiebl> Yeah, because you precompile tracker-handler.py. <_ion> in postinst, yes. <mbiebl> If you only install the python file it will complain that the file has a wrong encoding and it doesn't load the applet. <mbiebl> There are also two lintian warnings, which are simple to fix. <mbiebl> Besides that, your patch looks fine. <mbiebl> Oh, one thing though: libdeskbar-applet is Architecture:all #upstart 2007-01-29 <CJari> hi <CJari> can some one say where is the stuff from inittab located now? #upstart 2007-01-31 <chillywilly> so has there been a big push in fiesty development to write more upstart jobs? #upstart 2008-01-01 <mlankhorst-> Despite all the talk about upstart I found, are there some scripts for it already? Apart from sysvinit replacement. <ion_> There are some features being developed that everyoneâs waiting for. <ion_> If you mean booting the entire system with native upstart jobs. <mlankhorst-> That's what I mean indeed. <ion_> I think 0.5 (the next major release) is supposed to have all that is needed for that. <mlankhorst-> Ah ok, I'll just wait then. <ion_> https://lists.ubuntu.com/archives/upstart-devel/2007-October/000468.html #upstart 2008-01-02 <ion_> keybuk: Have you had a chance to waste cycles with my email yet? :-) <Keybuk> not even read it yet <Keybuk> only returned from holiday this morning <Keybuk> and haven't done e-mail catch-up <ion_> Alright. <ion_> No hurry. <Keybuk> I originally wrote nih_alloc with ref-counting <Keybuk> I forget why I removed it <ion_> keybuk: Do you think youâll still be able to take a look at my commit today? :-) <Keybuk> ion_: why is it a uint32_t ? <Keybuk> unless you have specific need for a 32-bit type, shouldn't that just be "unsigned int" ? <ion_> Heh, i just thought âwhatever, uint32_t is shorter to type and itâs not as if itâs too small for a refcountâ. :-P <Keybuk> it's reasonably good practice to avoid the "fixed length" types unless you really want a fixed length <ion_> Ok, iâll keep that in mind from now on. <Keybuk> ah, now I remember why I didn't go with reference counting <Keybuk> it made the world tricky when dealing with parents <Keybuk> if you return objects with a ref count as 1 when parent = NULL <Keybuk> and the parent holds a ref on the object <Keybuk> then surely the returned object has to have a ref count of 1 when parent != NULL (ie. the parent) <Keybuk> which didn't actually do what you want <Keybuk> so you had to have the parents *not* reference the object <ion_> Oh, perhaps i forgot to document it, but the refcount is increased when itâs added to a parent. <Keybuk> since that's actually what you are after <Keybuk> but then how do you deal with a child object being referenced when its parent is freed? <Keybuk> sorry, not explaining well <Amaranth> how can a child not have a parent? :) <Amaranth> dunno what exactly you're talking about but i'm thinking the child would get a new parent? <Keybuk> a = nih_new (NULL, void *); <Keybuk> that has a refcount of 1 <Keybuk> our reference <Amaranth> right <Keybuk> b = nih_new (a, void *); <Keybuk> that has a refcount of 2 <Amaranth> ok <Keybuk> our reference <Keybuk> AND a reference by its parent <Keybuk> if I do nih_unref (a) now, what happens to b? <Amaranth> it has a refcount of 1? <ion_> Its refcount drops to 1 <Amaranth> can you still use b? <Keybuk> so the object isn't freed when its parent is <Amaranth> not if someone else is holding on to it, why would it be? <Keybuk> the whole point of using the hierarchial allocator is to forget about objects if they have a parent <Keybuk> imagine <Keybuk> a = nih_new (NULL, SomeStructure); <ion_> True... <Keybuk> a->title = nih_strdup (a, "foo"); <Keybuk> a->description = nih_strdup (a, "some long description"); <Keybuk> if a reference is left open for me, I now have to remember to nih_unref those as well <Keybuk> doubling the length of code <Amaranth> but wait, wouldn't a->title go away when a does? <Keybuk> no <Keybuk> because its refcount is 2 <Keybuk> losing its parent would only decrease it to 1, so it would stay <Amaranth> but a is gone, how can a->title exist? <Keybuk> the alternative way would be the refcount of any returned object to always be 1 <ion_> Actually, what iâd like to have would be the possibility of adding a child to multiple parents â or rather âcontainersâ â so that each one references the child once. But granted, thatâs something completely different than using the parent to automatically free the kids. <Keybuk> if its parent is NULL, then its 1 (yours) <Keybuk> if the parent is non-NULL, then its 1 (the parent) <Amaranth> but then you're not really doing refcounting <Keybuk> but then you can't unref the child yourself, since you don't have a reference :-) <Keybuk> ion_: sure <Keybuk> that's a refcounting allocator ;) <Keybuk> not a hierarchial one <Keybuk> it'd be a good different allocator, but I don't think you can bolt it onto an h one <ion_> tss, the author of liblib (the âstandard libraryâ dovecot and icecap use) uses memory pools to implement the following: <ion_> foo_push (pool); <ion_> Allocate stuff using pool <ion_> foo_pop (pool); // Everything you allocated above is freed <ion_> But that solves a different problem. <Keybuk> yeah, it's a bit like obstacks <Amaranth> that sounds like what nih has now <Keybuk> he wrote a great paper on why he did it that way, instead of just using alloca <ion_> I wonder whether iâll end up NIHing my own âstandard libraryâ that is based on refcounting, since it would fit my application quite well... :-P <Keybuk> interestingly, talloc (a description of which is what nih_alloc is roughly based on) does have ref-counting <ion_> It would resemble libnih *a lot* since i quite like libnih, though, so iâd rather avoid duplication of effort. <ion_> Perhaps thereâs a way to implement refcounting without breaking the hierarchical allocation. Iâll have to think about it when my brain is less exhausted. <Keybuk> grab the samba source and look though source/lib/talloc.c and work out how Tridge does it? :p <ion_> Ok, iâll take a look. :-) <Keybuk> I think other objects can hold secondary references on an object <Keybuk> and if the parent is freed, the object is reparented to the first secondary reference <Keybuk> "god parents" if you like <Keybuk> a = nih_new (NULL, void *); <ion_> A random thought: if nih_new is called with a parent, itâs still initialized with a refcount of one and youâre forbidden from calling nih_unref on the resulting object. Would that work? <Keybuk> b = nih_new (a, void *); <Keybuk> c = nih_new (NULL, void *); <Keybuk> nih_alloc_reference (c, b); <Keybuk> nih_free (a); <Keybuk> /* parent of b is now c */ <Keybuk> ion_: then you can't free the object independently later since you don't hold a ref on it <Keybuk> (not without breaking ref counting semantics anyway) <ion_> For own storage, you could then nih_ref it. :-P But yeah, that would be cumbersome. <Keybuk> the god parent thing might work quite nicely though <Keybuk> I don't know what you want the ref counting for? <Amaranth> this reminds me of GInitiallyUnowned <Amaranth> i mean, in this case it's initially owned by the parent but it's the same concept <Amaranth> you don't want the creator to have a reference <ion_> For instance, in an OpenGL engine iâm working on, a texture object can be attached to a number of mesh objects. I want the meshes to reference the texture, and unref it when theyâre being freed. #upstart 2008-01-03 <Keybuk> Amaranth: but then how do you free a child object you're the owner of? :) <Amaranth> Well, with GInitiallyUnowned the idea is to sink the floating reference right away <Keybuk> ion_: the way I'd do that is just to have the objects allocated parent-less <Amaranth> it's meant to be used so you can create a widget then add it to a container without having to unref your copy afterward <Keybuk> and do the refcounting in the object <Keybuk> (see upstart's own Event object, that's ref counted) <ion_> Yep... I was kind of hoping to have the support for that in the allocator itself, but that works, too. <ion_> How about relicensing libnih as LGPL so i can use it in stuff iâm going to release LGPLed? ;-) <monchevique> is this forum about art <monchevique> ? <ion_> :-D <monchevique> what does ":-D" MEAN? <Keybuk> ion_: why not release your stuff GPLed? :) #upstart 2008-01-04 <JamesB192> I have an issue w/ Upstart 0.3.8 on Gentoo: when shutting down Upstart complains on shutting down all the init scripts w/o a stop section. <JamesB192> Should I file a bug w/ Gentoo and/or Upstart? #upstart 2008-01-08 <sadmac> Is Mr. Remnant here? By what name does he go on IRC? <ion_> Keybuk #upstart 2008-01-09 <sadmac> Ahh, lets try again, and hope not for a sudden power outage. <sadmac> Is Mr. Remnant here? <ion_> Not at the moment. <sadmac> ion_: could you recommend an email to reach him by (specifically Re: upstart)? <ion_> The mailing list, or emily84@example.com <sadmac> thanks <foolano> hi <foolano> any example of managing apache 1.3.x with upstart? #upstart 2008-01-10 <Gadi> can somebody tell me if I can make an event file similar to control-alt-delete but keyed off of a different key combo? <Gadi> (like kbrequest in inittab, keyed off of alt-uparrow) <foolano> hi again <foolano> have you ever tried to manage apache 1.3 with upstart? <foolano> i'm experiencing some issues <Keybuk> no <Keybuk> not yet <Keybuk> what issues are you experiencing? <foolano> well <foolano> if i launch apache without -F, it's started it correctly <Keybuk> what does -F do? <foolano> but it can't be stopped <foolano> foreground <foolano> if i launch it with -F <foolano> start apache-perl never returns <Keybuk> no idea, sorry <Keybuk> I don't know apache 1.3 well enough <foolano> i used -F when i used runit to manage it <foolano> is there any option in upstart i can try? <foolano> cuz the only option related to this in apache is -F <foolano> which is intended for supervisors <mbiebl> foolano: what do you mean by "it can't be stopped"? <Keybuk> right <Keybuk> -F sounds like the right option to me <foolano> the problem with -F is what i said <Keybuk> what's "start apache-perl" ? <Keybuk> oh <Keybuk> you ran that on the command-line? <foolano> yep <foolano> that's it <Keybuk> (you named the job "apache-perl" not "apache"? :P) <Keybuk> did you include "service" or "respawn" in your job definition? <foolano> just exec <foolano> right <foolano> with respawn <foolano> works just ok <foolano> :) <Keybuk> the default behaviour in Upstart for jobs is that they are tasks, not services <Keybuk> (since that's less destructive) <foolano> ok i c <foolano> my bad <foolano> thanks a lot :) <foolano> i thought respawn was just to rerun the job in case it exists <Keybuk> right <Keybuk> that's what it does <Keybuk> it also implies "service" <Keybuk> if you don't want it respawned, use "service" instead <foolano> i want it respawned <foolano> great <foolano> :) <foolano> thx again guys #upstart 2008-01-11 <joshk> Keybuk: is there a way to force a rc script to run in the foreground? <joshk> example: I'm installing a fully automated ubuntu on VMware and I have it so that rc.local triggers an installation of the vmware tools <joshk> but upstart lets that run in the bg <joshk> so it just drops to a login prompt (I disable X for the installation as well) <joshk> and that's kind of awkward for users who will be wondering wtf is going on <Keybuk> define foreground <joshk> Keybuk: i just want it to be the last thing the user sees in the init messages, and not go to a login prompt <joshk> easy way to describe it is.. as if ubuntu was using sysvinit and i had put the same stub in rc.local <joshk> it would say "Please wait, installing tools" and not show the login prompt <Gadi> hey, there, all! I am trying to write
{'channel': 'upstart', 'month': 1}