add cinit-0.3pre16
Signed-off-by: Nico Schottelius <nico@ikn.schottelius.org>
This commit is contained in:
parent
0a2c96848b
commit
0c13ed6979
1089 changed files with 101811 additions and 0 deletions
|
|
@ -0,0 +1,73 @@
|
|||
--------------------------------------------------------------------------------
|
||||
cinit commands,
|
||||
Nico Schottelius 2005-04-28 (Last Modified: 2005-06-11)
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
cinit allows communication through a socket (see ipc.thoughs for reasons).
|
||||
|
||||
Sockets allow to find out the accessing uid, gid and pid (using SO_PEERCRED as
|
||||
socketoption).
|
||||
|
||||
The communication-protocol is binary, the implementation can be found
|
||||
in comm/* mostly (clients use begin_msg() and server sigio() additonally).
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
Protocol overview
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
Any communication begins with a command. A command is a one byte
|
||||
unsigned char. Depending on the command, the communication has its own
|
||||
semantics.
|
||||
|
||||
|
||||
Commands are: (values can be found in cinit.h)
|
||||
|
||||
CMD_START_SVC: I want to start a service.
|
||||
CMD_CHG_STATUS: I want to change the status of a service.
|
||||
CMD_STOP_SVC: Please shutdown a service.
|
||||
|
||||
CMD_RESCUE: Kill everything, and spawn a sulogin shell.
|
||||
CMD_UPDATE: Hot-reboot system and reload cinit.
|
||||
|
||||
CMD_HALT: Halt the system
|
||||
CMD_REBOOT: Reboot the system
|
||||
CMD_POWEROFF: Power-off the system
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
Detailled command-listing
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
CMD_START_SVC
|
||||
1. int len; /* length of service name, including \0 */
|
||||
2. char *svc; /* name of the service, absolute pathname */
|
||||
|
||||
cinit returns:
|
||||
a) status of service
|
||||
b) fail
|
||||
|
||||
CMD_CHG_STATUS: I want to change the status of a service.
|
||||
0. int len;
|
||||
1. char *svc;
|
||||
2. char status; /* status:
|
||||
once: started successfully the service once.
|
||||
fail: tried to start once, but the service exit ungracefully
|
||||
respawn: I am on it, as soon it exists I'll restart! */
|
||||
2. pid_t pid /* the pid of the service, if started once
|
||||
or the pid of the service watcher, if respawning */
|
||||
|
||||
cinit returns: MSG_OK|MSG_FAIL (char)
|
||||
|
||||
CMD_STOP_SVC: Please shutdown a service and its dependencies.
|
||||
1. int len; /* length of service name, including \0 */
|
||||
2. char *svc; /* name of the service, absolute pathname */
|
||||
|
||||
cinit returns: Status of service (should be ST_OFF)
|
||||
|
||||
|
||||
The following commands do not return anything nor do they need any parameter:
|
||||
|
||||
CMD_RESCUE: Kill everything, and spawn a sulogin shell. Irreversible.
|
||||
CMD_HALT: Halt the system.
|
||||
CMD_REBOOT: Reboot the system.
|
||||
CMD_POWEROFF: Power-off the system.
|
||||
CMD_UPDATE: Update cinit, hot-reboot the system.
|
||||
Loading…
Add table
Add a link
Reference in a new issue