nix3-daemon(1)

    Warning
    This program is experimental (https://nix.dev/manual/nix/2.34/development/experimental-features.html#xp-feature-nix-command) and its interface is subject to change.

Name

nix daemon - daemon to perform store operations on behalf of non-root clients

Synopsis

nix daemon [option…]

Examples

•   Run the daemon:

    # nix daemon

•   Run the daemon and listen on standard I/O instead of binding to a UNIX socket:

    # nix daemon --stdio

•   Run the daemon and force all connections to be trusted:

    # nix daemon --force-trusted

•   Run the daemon and force all connections to be untrusted:

    # nix daemon --force-untrusted

•   Run the daemon, listen on standard I/O, and force all connections to use Nix’s default trust:

    # nix daemon --stdio --default-trust

Description

This command runs the Nix daemon, which is a required component in multi-user Nix installations. It runs build tasks and other operations on the Nix store on behalf of non-root users. Usually you don’t run the daemon directly; instead it’s managed by a service management framework such as systemd on Linux, or launchctl on Darwin.

Note that this daemon does not fork into the background.

Systemd socket activation

nix daemon supports systemd socket-based activation using the nix-daemon.socket unit in the Nix distribution. It supports listening on multiple addresses; for example, the following stanza in nix-daemon.socket makes the daemon listen on two Unix domain sockets:

    [Socket]
    ListenStream=/nix/var/nix/daemon-socket/socket
    ListenStream=/nix/var/nix/daemon-socket/socket-2

Options

•   --default-trust (#opt-default-trust)

    Use Nix’s default trust.

•   --force-trusted (#opt-force-trusted)

    Force the daemon to trust connecting clients.

•   --force-untrusted (#opt-force-untrusted)

    Force the daemon to not trust connecting clients. The connection is processed by the receiving daemon before forwarding commands.

•   --process-ops (#opt-process-ops)

    Forces the daemon to process received commands itself rather than forwarding the commands straight to the remote store.

          This is useful for the `mounted-ssh://` store where some actions need to be performed on the remote end but as connected user, and not as the user of the underlying daemon on the remote end.

•   --stdio (#opt-stdio)

    Attach to standard I/O, instead of using UNIX socket(s).

  Logging-related options

•   --debug (#opt-debug)

    Set the logging verbosity level to ‘debug’.

•   --log-format (#opt-log-format) format

    Set the format of log output; one of raw, internal-json, bar or bar-with-logs.

•   --print-build-logs (#opt-print-build-logs) / -L

    Print full build logs on standard error.

•   --quiet (#opt-quiet)

    Decrease the logging verbosity level.

•   --verbose (#opt-verbose) / -v

    Increase the logging verbosity level.

  Miscellaneous global options

•   --help (#opt-help)

    Show usage information.

•   --offline (#opt-offline)

    Disable substituters and consider all previously downloaded files up-to-date.

•   --option (#opt-option) name value

    Set the Nix configuration setting name to value (overriding nix.conf).

•   --refresh (#opt-refresh)

    Consider all previously downloaded files out-of-date.

•   --version (#opt-version)

    Show version information.

    Note

    See man nix.conf (https://nix.dev/manual/nix/2.34/command-ref/conf-file.html#command-line-flags) for overriding configuration settings with command line flags.