LinuxCommandLibrary

pulseaudio

Manage PulseAudio sound server

TLDR

Check if PulseAudio is running (a non-zero exit code means it is not running)

$ pulseaudio --check
copy

Start the PulseAudio daemon in the background
$ pulseaudio --start
copy

Kill the running PulseAudio daemon
$ pulseaudio [[-k|--kill]]
copy

List available modules
$ pulseaudio --dump-modules
copy

Load a module into the currently running daemon with the specified arguments
$ pulseaudio [[-L|--load]] "[module_name] [arguments]"
copy

SYNOPSIS

pulseaudio [OPTIONS]

PARAMETERS

-h, --help
    Show help message.

--version
    Show PulseAudio version information.

--start
    Start the PulseAudio daemon if it's not already running. This is usually handled automatically.

--kill
    Kill the running PulseAudio daemon. This will terminate all audio output and input.

--check
    Check if a PulseAudio daemon is already running for the current user.

--daemonize
    Daemonize the PulseAudio process after starting. This runs it in the background.

--system
    Run the PulseAudio server as a system-wide instance. Caution: This is generally discouraged for security and complexity reasons, as it means the daemon runs as root and all users share the same instance. It's primarily used for embedded systems or specific multi-user setups.

--log-level=LEVEL
    Set the log level. Possible levels include: error, warn, notice, info, debug, warning (alias for warn).

--log-target=TARGET
    Set the log target. Possible targets include: syslog, auto, file:/path/to/file, newfile:/path/to/file, stderr, console.

--exit-idle-time=SECONDS
    Terminate the daemon after the specified number of seconds of inactivity. A value of 0 means never exit on idle.

--no-exit-idle-time
    Disable automatic exit on idle. The daemon will run indefinitely until explicitly killed.

--disallow-module-loading
    Prevent loading modules dynamically after startup. All required modules must be loaded via configuration files.

--disallow-exit-on-failure
    Do not exit if a module fails to load during startup. Continue running with available modules.

DESCRIPTION

The pulseaudio command is the primary executable for the PulseAudio sound system daemon. PulseAudio is a network-capable sound server program that provides advanced audio mixing, routing, and processing capabilities on Linux and other Unix-like operating systems. It acts as a proxy between your applications and the low-level sound drivers (like ALSA or OSS), allowing multiple applications to play sound simultaneously, redirect audio to different devices, apply per-application volume control, and even stream audio across a network.

While users typically don't run pulseaudio directly (as it's often started automatically by desktop environments or systemd as a user service), the command allows for manual control, debugging, and configuration of the daemon. It can be used to start, kill, check the status of, or modify the behavior of the running PulseAudio server.

CAVEATS

Manual invocation of pulseaudio --start is generally discouraged unless you are troubleshooting or explicitly managing the daemon. Most desktop environments and modern Linux distributions manage PulseAudio automatically via systemd user services or similar mechanisms.

Running PulseAudio with the --system flag can lead to security vulnerabilities and is not recommended for typical desktop usage. It can also make debugging more complex.

Issues with PulseAudio are often related to misconfigured ALSA drivers, incorrect permissions, or conflicting audio services. Troubleshooting usually involves checking logs and configuration files.

CONFIGURATION FILES

PulseAudio's behavior is primarily controlled by configuration files located in /etc/pulse/ and ~/.config/pulse/. Key files include:
daemon.conf: Global daemon settings.
default.pa: User-specific startup script, defining modules to load and initial settings.
system.pa: System-wide startup script (used with --system mode).

TYPICAL USAGE CONTEXT

In a standard Linux desktop environment, the PulseAudio daemon is usually started automatically as a user service when you log in. You rarely need to interact directly with the pulseaudio command itself for day-to-day operations. Instead, users typically manage audio settings via desktop sound controls, or advanced users might use client utilities like pactl or pacmd to query status or change parameters dynamically.

HISTORY

PulseAudio was initially released in 2004 under the name Polypaudio by Lennart Poettering, and was renamed to PulseAudio in 2006. Its development aimed to provide a modern, flexible sound server for Linux, addressing limitations of older audio systems like ALSA's direct hardware access for multiple applications. It rapidly gained adoption and became the default sound server for major Linux distributions like Ubuntu and Fedora. While highly influential, PulseAudio has faced criticism regarding its complexity and performance in some scenarios. As of recent years, it is gradually being superseded by PipeWire, a newer multimedia framework designed to handle audio, video, and hardware devices more efficiently.

SEE ALSO

pactl(1), pacmd(1), aplay(1), arecord(1), alsamixer(1), pipewire(1), pw-cli(1)

Copied to clipboard