www.nico.schottelius.org/software/cinit/browse_source/cinit-0.0.8/TODO
Nico Schottelius 423ba10303 import cinit from unix.schottelius.org
Signed-off-by: Nico Schottelius <nico@ikn.schottelius.org>
2009-09-16 12:53:45 +02:00

86 lines
3.6 KiB
Text

--------------------------------------------------------------------------------
- Recheck sources:
- check errno!
- eventually split cinit code to csvc to minimize binary of cinit?
- close(*>2) before forking / executing
-> close fds, clean environment, etc., ...
-> do we really need that?
- remove FIXME entries (and what should be fixed, too)
- cservice -p does not work, kill -TERM does!
- cleanup sig_reboot.c
- memset for timespecs?
--------------------------------------------------------------------------------
- Source Logic issues
- cservice: remove trailing slash of service names,
absolute the service names?
- add reading of delay to run_svc, storing in list
- handle multiple killing within sigio (fork) ?
- add shutdown/reboot/.../ -> cinit.commands!
- socket / general access from outside/non-root?
- move umount, swapoff and remount to off of init?
-> cleanup sig_reboot.c
- handle CTR-ALT-DEL / keyboard request? (see caveats)
- check for possibilies to save ram, free things
- create coala-socket with correct permissions! (550, root:cinit)
-> is that really our problem or should a service do that?
- check if we caught every signal, which could kill us
- logging service!
-> write output $somewhere, wait for syslog?
-> flush at the end of start-process?
-> perhaps pipe logging output to a program?
- check for other possibilities to create a smaller binary
- strip options
- gcc options
- ld options
- alternative libc (uclibc and dietlibc work fine!)
- run_svc:
o we have many strcat()s, perhaps save length of pathbuf and strncat at
pathtmp[strlen(pathbuf)] ?
- the service watcher has somehow to handle SIGTERM and killing the process
-> global pid_t variable would do it
-> split code to cclient?
-> we have to add killing services from outside
-> perhaps completly split client code from cinit?
-> ccinit? ;-)
-> shutting down services is NOT YET possible while cinit is running
- cservice:
o shutdown/reboot/halt system (through socket?) -> no.
o show service list? -> no.
o respawn services
o exec services
o shutting down service _AND_ dependencies on it????
-> recursive searching in /etc/cinit/{*/}*/needs (not wants)
-> also without.
- really need swapoff?
--------------------------------------------------------------------------------
- Documentation
- Write manpages (use doc/* as base for that)
- Check Spell and Grammar in documentation
- write howto:
o Howto-cinit
o Howto-cinit-uml
--------------------------------------------------------------------------------
- Porting
- add porting code to other unices?
- like openssh guys do?
- polling/signalling is different everywhere
a) use standars poll/select
b) use accelerated os-specfic
-> add the name of the function/the file to use
into conf/poll_func?
o kqueue for freebsd/openbsd?
o epoll or sigio (current) for Linux?
o poll for netbsd
- using Linux 2.6 epoll mechanism?
--------------------------------------------------------------------------------
create_mini_cinit
-> use a tarball? (samples/*)
-> create something which should be runnable
-> mount, fsck, getty
--> for dev in `read /etc/fstab` ...
fsck $dev
--> getty from /etc/inittab or /sbin/*getty
-> find out, which gettys with which params
-> use it on 'make install'
--------------------------------------------------------------------------------