A simple pure-Go Linux init system.
選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。
Dashie der otter 49acf3294d
Add rsyslogd service
conf Add rsyslogd service 2年前
conftest Add rsyslogd service 2年前
lutractl Ignore targets in lutractl status command 2年前
lutrainit Move the fix of rights for socket and fix his exec 2年前
shared/ipc Ignore targets in lutractl status command 2年前
.dockerignore Add sample LXC and docker configs 2年前
.drone.yml Add drone config 2年前
.gitignore Todo: nothing 2年前
Dockerfile Add sample LXC and docker configs 2年前
LICENSE License update 2年前
MAIN_CONFIG.md Update of configurations and documentations 2年前
Makefile It magically works 2年前
README.md Make markdown linter happy 2年前
SERVICES.md Remove some unused older references to Needs and Provides 2年前
common.mk Split makefiles 2年前
lxc-config Add sample LXC and docker configs 2年前



Main repository at https://dev.sigpipe.me/dashie/lutrainit

lutrainit is an init system for Linux written in Go.

lutrainit will do the following:

  1. Set the hostname
  2. Remount the root filesystem[1]
  3. Mount all other non-network filesystems and activate swap partitions
  4. Start processes with config files in /etc/lutrainit/lutra.d/ after their dependencies (“Requires”) are started. See conf/ for a samples config.
  5. Start some TTY or anything other user-specified.
  6. 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.

See the conf/ folder for what you can put in /etc/lutrainit/ including services files in /etc/lutrainit/lutra.d/.


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

then add init=/sbin/lutrainit to your grub configuration. (Or alternatively, make /sbin/init a symlink to lutrainit.)

[1] 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.