[Nix-dev] NixOS on systemd

Shea Levy shea at shealevy.com
Fri Aug 31 14:26:10 CEST 2012


Hi Eelco,

On 08/30/2012 02:51 PM, Eelco Dolstra wrote:
> Hi all,
>
> For the last few months I've been working on and off on replacing Upstart with
> systemd as NixOS's init system.

Thanks for doing this! My boot is much much faster now.

>    This is now in a fairly usable state.  (I'm
> running it on my own laptop, but it hasn't been widely tested and there are
> undoubtedly many issues remaining.)

One issue I've found so far: hardware.bluetooth.enable=true installs the 
udev rules to start bluetoothd on bluetooth events, but even though 
bt-usb is loaded by udev I have to start bluetoothd manually now (before 
it was automatic).

> If you want to test it, do:
>
> $ git clone -b systemd git://github.com/edolstra/nixos.git nixos-systemd
> $ nixos-rebuild switch -I nixos=/path/to/nixos-systemd
> $ reboot
>
> The reboot is required to switch to systemd.
>
> Things to note:
>
> * You can see and manage systemd units using "systemctl".  As a convenience for
> Upstart users, there are shell aliases "start", "stop" and "status" that run the
> corresponding "systemctl" command.  E.g. "status httpd" shows the status of the
> httpd.service unit.

FWIW, these aliases don't seem to get passed through when sudoing, even 
with sudo -i.

> * Systemd service units can be defined through the boot.systemd.services option.
>   For compatibility, Upstart jobs defined in the "jobs" option are automatically
> converted to systemd services.  (See modules/system/upstart/upstart.nix.)
> However, this mapping is not perfect.  In particular, Upstart-specific
> constructs such as startOn and extraConfig should be rewritten.
>
> * ConsoleKit is gone.  Its role has been taken over by logind.  Use "loginctl"
> to manage user sessions.  Every user session runs in a separate cgroup (see
> "systemd-cgls" and "systemd-cgtop" for a nice view).
>
> * Syslogd no longer runs by default since systemd provides its own journal
> service.  This means /var/log/{messages,warn} are not used.  Instead you can run
> "journalctl" or "systemctl status" to see log messages.
>
> * KDE 4.7 can no longer suspend/hibernate.  Maybe a newer KDE fixes this.  You
> can however run "systemctl suspend" or "systemctl hibernate" (as a logged-in user).
>
> * There is no getty/login started on tty1.

Any reason why not?


More information about the nix-dev mailing list