|squeaky otter 49acf3294d||4 years ago|
|conf||4 years ago|
|conftest||4 years ago|
|lutractl||4 years ago|
|lutrainit||4 years ago|
|shared/ipc||4 years ago|
|.dockerignore||4 years ago|
|.drone.yml||4 years ago|
|.gitignore||4 years ago|
|Dockerfile||4 years ago|
|LICENSE||4 years ago|
|MAIN_CONFIG.md||4 years ago|
|Makefile||4 years ago|
|README.md||4 years ago|
|SERVICES.md||4 years ago|
|common.mk||4 years ago|
|lxc-config||4 years ago|
Main repository at https://dev.sigpipe.me/dashie/lutrainit
lutrainit is an init system for Linux written in Go.
lutrainit will do the following:
- Set the hostname
- Remount the root filesystem
- Mount all other non-network filesystems and activate swap partitions
- Start processes with config files in /etc/lutrainit/lutra.d/ after their dependencies ("Requires") are started. See
conf/for a samples config.
- Start some TTY or anything other user-specified.
- Kill running processes, unmount filesystems, and poweroff the system once that last login session ends.
(The way step 4 is handled isn't very elegant and will likely fail if you have too many slow startup processes.)
You can also create a file
/etc/lutrainit/lutra.conf for some basic configuration.
If there are any lines of the form
autologin: username it will automatically log in
as that username. (If there's multiple autologin directives, it will create the
appropriate number of ttys.)
If any line contains
persist: true, then when a tty exits, it'll respawn the tty instead of powering down the system once all the ttys are gone.
conf/ folder for what you can put in
/etc/lutrainit/ including services files in
A tool exists and communicate with the init daemon using RPC on socket
/run/ottersock, it can then show init version, statistics about goroutines, memory, etc.
sudo cp lutrainit/lutrainit /sbin sudo cp lutractl/lutractl /sbin
init=/sbin/lutrainit to your grub configuration. (Or alternatively, make
/sbin/init a symlink to
 This shouldn't be required, since
mount -a should take care of it in step
3 according to mount(8), but as far as I can tell it doesn't.