pulseaudio
Manage PulseAudio sound server
TLDR
Check if PulseAudio is running (a non-zero exit code means it is not running)
Start the PulseAudio daemon in the background
Kill the running PulseAudio daemon
List available modules
Load a module into the currently running daemon with the specified arguments
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.