87 lines
3.6 KiB
Text
87 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'
|
||
|
--------------------------------------------------------------------------------
|