-------------------------------------------------------------------------------- - define how it should work (doc/braindums/big-picture.text) - define service status in one document, so repeatition stops! -------------------------------------------------------------------------------- - remove client/ from top level -------------------------------------------------------------------------------- Generate automatic asciidoc from conf/* -------------------------------------------------------------------------------- Ausgaben nach Beendigung vom Starten des Services. [ on ] %s + Ergebnis [ off ] %s Rekursives herunter/rauffahren -------------------------------------------------------------------------------- - add error handling to cinit.install.binary -------------------------------------------------------------------------------- 1. Entfernung mount -> Example configuration -> was man alles machen muss -------------------------------------------------------------------------------- - add code do implement stopping / restarting with dependency tree -------------------------------------------------------------------------------- - print service name or cinit: before _everything_ WE print - is the reporting ok? # cinit.create.empty.service: can only be started from the bin directory - Fix Switching services off !! - Error codes when shutting down a service? - Delay dokumentieren - no_kill dokumentieren - on.out, on.err, on.in? -> reading/writing from/to files - implement "no_kill" until cinit-0.2 or 0.3? -------------------------------------------------------------------------------- - Source Logic issues - remove FIXME entries (and what should be fixed, too) -------------------------------------------------------------------------------- Helper scripts, rausgenommen aus Der Doku, muessen fuer cinit-0.3 ueberprueft werden: Configure help scripts ~~~~~~~~~~~~~~~~~~~~~~ cinit-conf later Using prepared scripts In the bin/ directory of this tarball you'll find at least: cinit.add.dependency - add a dependency to a service cinit.add.getty - add a new getty cinit.create.empty.service - create an empty service cinit.reboot - reboot in /bin/sh cinit.remove.getty - remove a getty service cinit.respawn.off - switch respawing off cinit.respawn.on - switch respawing on cinit.shutdown - shutdown in /bin/sh -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- Optimisations ------------- - Installing cinit o compiling cinit from source o debian / gentoo - Configuring * add scripts! see below - define coding guidelines -> general, with url? - Write manpages (use doc/* as base for that) - Check Spell and Grammar in documentation - write howto: o Howto-cinit o Howto-cinit-uml tree_exec ~~~~~~~~~ - only check dependencies (=needs) after the basic run? Documentation ------------- developer ~~~~~~~~~ - ST_IN_LIST == startup marker, used to (NOT) insert services into startup - dep_needs_wants_add is used to add dependencies of a service to the general starter list user ---- - do we really need swapoff? remove umount, swapoff! * to services! -> they have to do it! - dependencies with leading '.' (dot) are ignored. - about cinit-configuration structure * cconfig * svc/ * special/ (or however we called it) - panic - halt - poweroff - reboot -------------------------------------------------------------------------------- FAQ ~~~ - DOKU: what happens when a service does not terminate.... und er als once drin ist --> Wenn kein ReSPAWN und der Prozess beendet sich nicht, dann haengt init! - multuicall probleme -> busysbox --> GIBT ES NICHT!! ---> DOKU DAZU! mit links, doppelt links, aus test ---> erklaeren, dass es unproblematisch ist! -------------------------------------------------------------------------------- csvc: 11:09 < folken23> telmich: oder service allready started. -------------------------------------------------------------------------------- cinit: 11:09 < folken23> telmich: zsb. eine grund angabe warum ein dienst nicht gestartet werden konnte. 11:09 < folken23> telmich: e.g. file nicht gefunden, service hat nicht 0 zurueckgeworfen. ---> errno in execute_sth! Child handlin ~~~~~~~~~~~~~g - free() everything before starting child Later ~~~~~ - close(*>2) before forking / executing -> close fds, clean environment, etc., ... -> do we really need that? -> yep, clean environment! - logging service! -> write output $somewhere, wait for syslog? -> flush at the end of start-process? -> perhaps pipe logging output to a program? -------------------------------------------------------------------------------- - Doc * main.text -> cleanup / remove / split * config-dirs * FAQ * ideas * meta.dependencies - config/hints/meta depps * optimising - integrate into other * README.text - update * replacing.init - update / integrate * special-services.text - into configuring/hints? * TODO - into paths, if necessary * updating.cinit - update as soon as update is possible? * using.rescue - update as soon as update is possible? * 'os-integration.text' * 'daemons.backgrounding' * There are some hints on how to migrate to cinit in general and also some os specific help in the file 'migrating-init-systems.text', - CODECHECK: * what happens with the wants of the last services? - are they added? - are they added at the correct position? - scripts * `cinit.check.config` (doc/user/configuring.cinit.text) -> circular depedencies! - Doc.next: - installing: report! -> write report script. - Doc later * current-init-problems.text - current-init-problems.text explains why cinit does not use nor recommends the use of shell scripts. * special-services.text - Begin documentation * Check Makefile * Integrate Makefile into main Makefile * create manpage * Write a small manual - install - configure - boot (different OS) * generate asciidoc! - Doc way: * installing * configuring - testconfig! * booting - different OS / bootloader * debugging - Shutdomn code: * begin at init, then shutdown wants/needs, ... - check that the new wants and need elements are nserted the other way round * we go to next, elements must be put before us! - replace cinit_ipc_logon with cinit_ipc_init... * delay ipc code -> after start! - Cleanup / create object lists object-lists/ cinit cservice ccontrol cinit.halt cinit.reboot cinit.shutdown (shell script?!?) TODO.pre8: Done: merge codingstyle and codingguide Use sa.mask in sigaction! double check all initialisations! fixed problem in src/Makefile remove old object listings Document the define of the following: -> conf/umount = called before all shutdown procedures --> conf/last! test sleep code (sleep_before_kill()) -> execute as id compiler, so kill -1 does not kill my session check whether successful service is not successful reported TODO.pre9: - setup VM for testing: qemu/kvm/virtualbox (no commercial bloaty) do_reboot.c: write cinit_svc_shutdown Add handler for ctrl+alt+delete * document in paths - implement do_reboot() * so not only booting with cinit works, but also the shutdown include locking via shm, remove test on pid1 cleanup bin/ - do not print an error if /etc/cinit/conf/last is non-existent! - ignore msgrcv: Interrupted system call Session terminated, killing shell...msgq-destroy: Invalid argument msgq-destroy: Invalid argument - pretty print, reporting is ugly! TODO.pre10: cleanup client/ comm/ contrib+tools/ util/ tmp/ - write cinit.conf.check * report broken links in needs/wants * report circular dependencies TODO.pre11: cleanup src/ finish ipc code so clients can access cinit TODO.pre12: Check and clean doc/ Remove *TODO*+ROADMAP and leave behin doc/TODO TODO.pre13: code cservice ccontrol halt reboot shutdown poweroff Test, release and prepare for final cinit-0.3 TODO.0.3.1 add log support cinit logs to -> shm saver services log to TODO unclear - create migration scripts