Skip to content

Native

Options

process.managers.native.processConfig.<name>.listen

Socket activation configuration (systemd-compatible).

The process will receive activated sockets via LISTEN_FDS/LISTEN_PID/LISTEN_FDNAMES environment variables, starting at file descriptor 3.

Type: list of (submodule)

Default: [ ]

Example:

[
  {
    name = "http";
    kind = "tcp";
    address = "127.0.0.1:8080";
  }
  {
    name = "api";
    kind = "unix_stream";
    path = "/tmp/api.sock";
    mode = 384; # 0o600
  }
]

Declared by: - https://github.com/cachix/devenv/blob/main/src/modules/process-managers/native.nix

process.managers.native.processConfig.<name>.listen.*.address

TCP address (e.g., 127.0.0.1:8080) - required for tcp kind

Type: null or string

Default: null

Declared by: - https://github.com/cachix/devenv/blob/main/src/modules/process-managers/native.nix

process.managers.native.processConfig.<name>.listen.*.backlog

Socket listen backlog

Type: signed integer

Default: 128

Declared by: - https://github.com/cachix/devenv/blob/main/src/modules/process-managers/native.nix

process.managers.native.processConfig.<name>.listen.*.kind

Type of socket

Type: one of “tcp”, “unix_stream”

Default: "tcp"

Declared by: - https://github.com/cachix/devenv/blob/main/src/modules/process-managers/native.nix

process.managers.native.processConfig.<name>.listen.*.mode

Unix socket file permissions (octal, e.g., 0o600)

Type: null or signed integer

Default: null

Declared by: - https://github.com/cachix/devenv/blob/main/src/modules/process-managers/native.nix

process.managers.native.processConfig.<name>.listen.*.name

Name of the socket (used in LISTEN_FDNAMES)

Type: string

Declared by: - https://github.com/cachix/devenv/blob/main/src/modules/process-managers/native.nix

process.managers.native.processConfig.<name>.listen.*.path

Unix socket path - required for unix_stream kind

Type: null or absolute path

Default: null

Declared by: - https://github.com/cachix/devenv/blob/main/src/modules/process-managers/native.nix

process.managers.native.processConfig.<name>.notify

Systemd notify socket configuration.

The process can send READY=1, STATUS=…, etc. via NOTIFY_SOCKET.

Type: null or (submodule)

Default: null

Declared by: - https://github.com/cachix/devenv/blob/main/src/modules/process-managers/native.nix

process.managers.native.processConfig.<name>.notify.enable

Enable systemd notify protocol

Type: boolean

Default: true

Declared by: - https://github.com/cachix/devenv/blob/main/src/modules/process-managers/native.nix

process.managers.native.processConfig.<name>.pseudo_terminal

Run this process in a pseudo-terminal (PTY).

Useful for interactive processes that require terminal capabilities.

Type: boolean

Default: false

Declared by: - https://github.com/cachix/devenv/blob/main/src/modules/process-managers/native.nix

process.managers.native.processConfig.<name>.use_sudo

Run this process with sudo/elevated privileges.

Similar to process-compose’s is_elevated option.

Type: boolean

Default: false

Declared by: - https://github.com/cachix/devenv/blob/main/src/modules/process-managers/native.nix

process.managers.native.processConfig.<name>.watch

File watching configuration

Type: submodule

Default: { }

Declared by: - https://github.com/cachix/devenv/blob/main/src/modules/process-managers/native.nix

process.managers.native.processConfig.<name>.watch.extensions

File extensions to watch

Type: list of string

Default: [ ]

Declared by: - https://github.com/cachix/devenv/blob/main/src/modules/process-managers/native.nix

process.managers.native.processConfig.<name>.watch.ignore

Glob patterns to ignore

Type: list of string

Default: [ ]

Declared by: - https://github.com/cachix/devenv/blob/main/src/modules/process-managers/native.nix

process.managers.native.processConfig.<name>.watch.paths

Paths to watch for changes

Type: list of absolute path

Default: [ ]

Declared by: - https://github.com/cachix/devenv/blob/main/src/modules/process-managers/native.nix

process.managers.native.processConfig.<name>.watchdog

Systemd watchdog configuration.

The process should send WATCHDOG=1 via notify socket periodically.

Type: null or (submodule)

Default: null

Example:

{
  usec = 30000000; # 30 seconds
  require_ready = true;
}

Declared by: - https://github.com/cachix/devenv/blob/main/src/modules/process-managers/native.nix

process.managers.native.processConfig.<name>.watchdog.require_ready

Require READY=1 notification before enforcing watchdog

Type: boolean

Default: true

Declared by: - https://github.com/cachix/devenv/blob/main/src/modules/process-managers/native.nix

process.managers.native.processConfig.<name>.watchdog.usec

Watchdog interval in microseconds

Type: signed integer

Declared by: - https://github.com/cachix/devenv/blob/main/src/modules/process-managers/native.nix