328 lines
9.9 KiB
Text
328 lines
9.9 KiB
Text
|
--------------------------------------------------------------------------------
|
||
|
- 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.pre9:
|
||
|
|
||
|
Done:
|
||
|
- pfad korrigieren (home/..../ -> cinit.release)
|
||
|
- cg-add nicht aufrufen beim make all!
|
||
|
ser/nico/oeffentlich/computer/projekte/cinit/cinit-0.3pre8/doc'
|
||
|
FILE="size/`date +%Y-%m-%d-%H%M%S`"; ls -l src/cinit > $FILE; cat $FILE; \
|
||
|
cg-add $FILE
|
||
|
-rwx------ 1 nico nico 72601 2007-04-06 17:52 src/cinit
|
||
|
There is no GIT repository here (.git not found)
|
||
|
make: *** [sizecheck] Fehler 1
|
||
|
- setup VM for testing: qemu/kvm/virtualbox (no commercial bloaty)
|
||
|
-> uml!
|
||
|
- sleep when respawnig!
|
||
|
-> static delay of five seconds
|
||
|
do_reboot.c:
|
||
|
is ipc closed? -> check! => done!
|
||
|
- ignore msgrcv: Interrupted system call
|
||
|
Session terminated, killing shell...msgq-destroy: Invalid argument
|
||
|
msgq-destroy: Invalid argument
|
||
|
- do not print an error if /etc/cinit/conf/last is non-existent!
|
||
|
=> print it. Do not not print it, as this can aid debugging.
|
||
|
include locking via shm, remove test on pid1
|
||
|
=> not necessary imho currently
|
||
|
|
||
|
|
||
|
TODO.pre10:
|
||
|
Done:
|
||
|
cleanup client/ comm/ contrib+tools/ util/ tmp/
|
||
|
Debugging cinit-configuration:
|
||
|
ls -lR /etc/cinit
|
||
|
or: cinit.read....
|
||
|
|
||
|
TODO.pre11:
|
||
|
Remove some debugging, re-introduce DEBUG() macro..
|
||
|
Fix doc:
|
||
|
|
||
|
make dist should cleanup cc / ld to sane values?
|
||
|
or do I experiement in tmp/*?
|
||
|
|
||
|
http://linux.schottelius.org/cinit/browse_source/current/doc/user/config-dirs
|
||
|
conf/c_halt
|
||
|
|
||
|
IPC:
|
||
|
* check msqg-code
|
||
|
* documentate the ipc functions: update devel/ipc.text
|
||
|
* check cinit_read_command() (devel/ipc.h)
|
||
|
|
||
|
do_reboot.c:
|
||
|
write cinit_svc_shutdown
|
||
|
- implement do_reboot()
|
||
|
* so not only booting with cinit works, but also the shutdown
|
||
|
- write libcinit for use in cmd()
|
||
|
- find out why gettimeofday() and time() do strange things when called in SIG_CHLD
|
||
|
=> bug opened in glibc, got to code testprogram
|
||
|
- write cinit.conf.check
|
||
|
* report broken links in needs/wants
|
||
|
* report circular dependencies
|
||
|
- pretty print, reporting is ugly!
|
||
|
Add handler for ctrl+alt+delete
|
||
|
* document in paths
|
||
|
* check whether there's an os-unspecific way to do that
|
||
|
cleanup bin/
|
||
|
- write sys-v-init-shutdown-wrapper
|
||
|
* shutdown
|
||
|
* halt
|
||
|
* reboot
|
||
|
* poweroff
|
||
|
- write manpages for
|
||
|
- *.kill
|
||
|
- cmd
|
||
|
|
||
|
install:
|
||
|
make install => does not overwrite critical targets
|
||
|
* cinit
|
||
|
* *.kill (see client/*)
|
||
|
* cmd
|
||
|
make force-install => overwrites /sbin/{halt,poweroff,reboot}?
|
||
|
=> with script that wraps cmd
|
||
|
make install-template:
|
||
|
* creates categories
|
||
|
make install-miniconf:
|
||
|
* creates categories
|
||
|
* creates one service starting a shell (depending on the OS!)
|
||
|
|
||
|
cleanup src/
|
||
|
finish ipc code so clients can access cinit
|
||
|
implement CMD_INFO (see comm.h)
|
||
|
|
||
|
|
||
|
TODO.pre12:
|
||
|
Check and clean doc/
|
||
|
Remove *TODO*+ROADMAP and leave behin doc/TODO
|
||
|
|
||
|
TODO.pre13:
|
||
|
code cmd=(cservice ccontrol halt reboot shutdown poweroff)
|
||
|
=> halt/r/... also with kill ...
|
||
|
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
|