Home / Alt manpages / quota_nld(8)

  • quota_nld(8)
  • Admin command
  • linux

Route Linux Quota Warnings with quota_nld

quota_nld decides whether someone over quota gets a desktop pop-up, a terminal message, both, or silence, and the defaults catch almost everyone out. This guide shows you how to choose where warnings go, confirm which messages reach a user's terminal, and test the installed command without accidentally starting a second daemon. The examples use quota tools 4.06, installed here as Debian package quota 4.06-1build6.

Allow about fifteen minutes. You need the quota package, a shell, and a machine using filesystem quotas. Starting or replacing a daemon is an operational change, so coordinate it with whoever manages the host. The checks in the first half are read-only and normally need no elevated privileges.

1. Check the installed command

Confirm which executable your shell will use and record its version:

$ command -v quota_nld
/usr/sbin/quota_nld
$ quota_nld --version
Quota utilities version 4.06.
Compiled with: USE_LDAP_MAIL_LOOKUP EXT2_DIRECT HOSTS_ACCESS RPC RPC_SETQUOTA BSD_BEHAVIOUR
$ dpkg-query -W -f='${Package} ${Version}\n' quota
quota 4.06-1build6

The compiled-feature line and package version are host-specific, so keep this with your service configuration. The installed binary accepts both short and long option names, and the long forms are easier to review in a unit file or maintenance note.

Checkpoint

Inspect the local option list before copying a command into a service definition:

$ quota_nld --help
quota_nld: Usage: quota_nld [options]
Options are:
 -h --help         shows this text
 -V --version      shows version information
 -C --no-console   do not try to write messages to console
 -b --print-below  write to console also information about getting below hard/soft limits
 -D --no-dbus      do not try to write messages to DBUS
 -F --foreground   run daemon in foreground

2. Check the kernel prerequisite

quota_nld listens for quota messages on a netlink socket, so the kernel needs quota-message support enabled: the manual points to the Filesystems -> Quota kernel configuration area. That is a build or kernel-selection prerequisite, not a quota_nld flag.

An installed executable is not proof that the running kernel can send these messages. If your distribution exposes kernel configuration, check it through your normal read-only tooling. If support is missing, stop there and involve the kernel or platform owner: rebuilding or replacing a production kernel is outside this guide and needs its own rollback plan.

There is no quota_nld configuration file on this installed manual. Routing policy is set entirely with command-line options, normally by whatever service definition launches the daemon.

3. Choose the warning destinations

With no routing switches at all, the daemon forwards warnings to both destinations at once:

  • The system D-Bus, so a desktop manager can display a dialog.
  • The user's last-accessed terminal.

The option names are easy to get backwards. --no-dbus disables D-Bus forwarding, and --no-console disables terminal output; neither one enables anything, since both are already on by default.

Host with desktop notifications irrelevant but terminal warnings wanted:

quota_nld --no-dbus

Host where terminal writes are unwanted:

quota_nld --no-console

Using both switches leaves no destination for a warning at all, so only do that if another monitoring path definitely handles quota events. A silent terminal is not evidence that quota checks are healthy.

4. Decide whether below-limit messages belong on terminals

Terminal output is deliberately narrower than D-Bus output: by default, terminal messages skip warnings about falling back below hard or soft limits. Add --print-below when those messages need to reach the user's last-accessed terminal too:

quota_nld --no-dbus --print-below

This does not add a new quota limit and does not change enforcement. It only changes which received warnings get printed to terminals. D-Bus receives every quota message regardless of --print-below, unless --no-dbus is also set.

Checkpoint

Write your intended policy down in plain language before touching the service command. For example: "D-Bus warnings on, terminal warnings on, below-limit terminal messages suppressed" maps to no routing switches at all. "Terminal warnings only, including below-limit messages" maps to --no-dbus --print-below.

5. Test in the foreground, carefully

--foreground keeps the daemon attached to your shell, which is handy for debugging. It does not create a background service or detach from the terminal. Starting a second instance can conflict with the one your system already manages, so check how the host currently launches it through your service-management process first.

In a maintenance window, with any existing instance stopped through your normal runbook, a terminal-only foreground test looks like:

$ sudo quota_nld --foreground --no-dbus

Do not expect startup text. A successful foreground run can simply sit waiting for netlink messages. Keep the shell visible, generate only a safe test event approved for the host, and stop the test with Ctrl-C. The exact warning text depends on the quota event and the affected user.

Warning

Do not run this as a second copy while a production daemon is already running, and do not fill a filesystem just to trigger output. A full filesystem can disrupt services and damage applications. If the test changed no persistent service configuration, the undo is just Ctrl-C plus restoring the previously running instance through the host's normal procedure.

6. Put the chosen flags under service control

Once the foreground test has proven the routing you want, put the same flags into the existing service definition or package-provided launch mechanism. Keep the package's executable path and any distribution-specific privilege, dependency, restart and logging settings intact. This guide does not invent a unit name or service file, because those details vary between systems and are not specified by the quota_nld manual.

After reloading or restarting the service through your normal procedure, verify its status and confirm the effective command line. A useful read-only check on Linux:

$ pgrep -a quota_nld

If the process is present, compare its arguments against the policy you recorded. An absent process does not by itself prove a kernel problem, check the service log and launch status before changing any flags. To roll back, restore the previous command line and restart the service through the same controlled procedure.

7. Separate routing failures from quota failures

Keep these questions apart when diagnosing an alert:

  • Is the daemon running and listening for netlink messages?
  • Does the running kernel include quota netlink support?
  • Where was the warning routed: D-Bus, the last-accessed terminal, or both?
  • Was it a below-limit message that terminal output suppresses by default?

A desktop user seeing no dialog could be affected by --no-dbus, by having no desktop D-Bus session, or simply by there being no quota event. A user seeing no terminal warning may be on a different or inactive terminal, or the event may be below a limit with --print-below not set. Resist "fixing" an ambiguous symptom by turning on every destination on a production host.

Done means

  • You recorded the installed quota tools version and verified the executable path.
  • You confirmed the running kernel is meant to provide quota netlink messages.
  • You can explain the difference between --no-dbus and --no-console.
  • You selected --print-below only when terminal users needed those extra messages.
  • You tested in the foreground without starting a duplicate daemon or filling a filesystem.
  • The service command line matches the written routing policy, with a tested rollback.