Add init_env_poweroff.sh

This commit is contained in:
Ciro Santilli
2018-02-09 20:48:45 +00:00
parent c771b40913
commit fc168d6eb5
3 changed files with 20 additions and 2 deletions

View File

@@ -45,6 +45,7 @@ See the [getting started section](getting-started.md) for further details.
1. [KGDB](kgdb.md) 1. [KGDB](kgdb.md)
1. [gdbserver](gdbserver.md) 1. [gdbserver](gdbserver.md)
1. [Other architectures](other-architectures.md) 1. [Other architectures](other-architectures.md)
1. [init](init.md)
1. [modprobe](modprobe.md) 1. [modprobe](modprobe.md)
1. [X11](x11.md) 1. [X11](x11.md)
1. [Count boot instructions](count-boot-instructions.md) 1. [Count boot instructions](count-boot-instructions.md)

17
init.md
View File

@@ -14,7 +14,7 @@ systemd is a "popular" `/init` implementation for desktop distros as of 2017.
BusyBox provides its own minimalistic init implementation which Buildroot uses by default. BusyBox provides its own minimalistic init implementation which Buildroot uses by default.
### Custom init ## Custom init
Is the default BusyBox `/init` too bloated for you, minimalism freak? Is the default BusyBox `/init` too bloated for you, minimalism freak?
@@ -31,7 +31,7 @@ Also remember that if your init returns, the kernel will panic, there are just t
- run forever in a loop or long sleep - run forever in a loop or long sleep
- `poweroff` the machine - `poweroff` the machine
### Disable networking ## Disable networking
The default BusyBox init scripts enable networking, and there is a 15 second timeout in case your network is down or if your kernel / emulator setup does not support it. The default BusyBox init scripts enable networking, and there is a 15 second timeout in case your network is down or if your kernel / emulator setup does not support it.
@@ -42,3 +42,16 @@ To disable networking, use:
To restore it, run: To restore it, run:
./build -t initscripts-reconfigure ./build -t initscripts-reconfigure
## The init environment
The docs make it clear https://www.kernel.org/doc/html/v4.14/admin-guide/kernel-parameters.html
> The kernel parses parameters from the kernel command line up to “–”;
> if it doesnt recognize a parameter and it doesnt contain a ., the parameter gets passed to init:
> parameters with = go into inits environment, others are passed as command line arguments to init.
> Everything after “–” is passed as an argument to init.
And you can try it out with:
./run -e 'init=/init_env_poweroff.sh - asdf=qwer zxcv' -n

View File

@@ -0,0 +1,4 @@
#!/bin/sh
echo "$@"
env
/poweroff.out