shinit

basic init daemon in POSIX sh
git clone git://git.ckyln.com/~cem/shinit.git
Log | Files | Refs | README | LICENSE

commit 8f51b17ed0b38b12bb2da6d561d9a53a5301b5ec
parent 11c4f9b3a6c6665455ec0c3c929843c167fa6615
Author: Cem Keylan <cem@ckyln.com>
Date:   Fri, 17 Jul 2020 14:59:01 +0300

README: update

Diffstat:
MREADME.md | 44++++++++++++++++++++++++++++++++++++++++----
1 file changed, 40 insertions(+), 4 deletions(-)

diff --git a/README.md b/README.md @@ -1,8 +1,8 @@ shinit ====== -Basic init daemon in POSIX sh with only 5 lines of code. It supports -acting upon signals. +Basic init daemon in POSIX sh with only 5 lines of code. It supports acting upon +signals. On USR1 signal it will poweroff, and on INT signal it will reboot. @@ -10,9 +10,45 @@ On USR1 signal it will poweroff, and on INT signal it will reboot. Installing ---------- -Before installing, edit the second command to use your boot/poweroff -script. If you are using Carbs Linux or KISS, you don't need to change it. +Before installing, edit the second command to use your boot/poweroff script. If +you are using Carbs Linux or KISS, you don't need to change it. You can then install with `make`. make install + + +Note on halting the system +-------------------------- + +shinit does **NOT** deal with system halting. You will need an extra utility for +that given purpose. `ubase halt` deals with this. You can also use compile +this really simple C program that tells to kernel to shutdown or reboot. + +``` c +#include <sys/reboot.h> + +int +main(int argc, char *argv[]) +{ + switch ((int) argv[argc < 2 ? 0 : 1][0]) { + case 'p': reboot(RB_POWER_OFF); break; + case 'r': reboot(RB_AUTOBOOT); break; + default: return 1; + } + return 0; +} +``` + +You can compile the following program to something named `halt` or whatever you +like. If you call `halt p` it will power off, if you call `halt r` it will +reboot. Just note that this needs to be at the end of your init script, because +this command will shut your computer down straight away. You can do the +following check at the end of your init script: + +``` sh +case "$1" in + poweroff) halt p ;; + reboot) halt r ;; +esac +```