1pulseaudio(1) General Commands Manual pulseaudio(1)
2
3
4
6 pulseaudio - The PulseAudio Sound System
7
9 pulseaudio [options]
10
11 pulseaudio --help
12
13 pulseaudio --version
14
15 pulseaudio --dump-conf
16
17 pulseaudio --dump-modules
18
19 pulseaudio --dump-resample-methods
20
21 pulseaudio --cleanup-shm
22
23 pulseaudio --start
24
25 pulseaudio --kill
26
27 pulseaudio --check
28
30 PulseAudio is a networked low-latency sound server for Linux, POSIX and
31 Windows systems.
32
34 -h | --help
35 Show help.
36
37 --version
38 Show version information.
39
40 --dump-conf
41 Load the daemon configuration file daemon.conf (see below),
42 parse remaining configuration options on the command line and
43 dump the resulting daemon configuration, in a format that is
44 compatible with daemon.conf.
45
46 --dump-modules
47 List available loadable modules. Combine with -v for a more
48 elaborate listing.
49
50 --dump-resample-methods
51 List available audio resamplers.
52
53 --cleanup-shm
54 Identify stale PulseAudio POSIX shared memory segments in
55 /dev/shm and remove them if possible. This is done implicitly
56 whenever a new daemon starts up or a client tries to connect to
57 a daemon. It should normally not be necessary to issue this com‐
58 mand by hand. Only available on systems with POSIX shared memory
59 segments implemented via a virtual file system mounted to
60 /dev/shm (e.g. Linux).
61
62 --start
63 Start PulseAudio if it is not running yet. This is different
64 from starting PulseAudio without --start which would fail if PA
65 is already running. PulseAudio is guaranteed to be fully ini‐
66 tialized when this call returns. Implies --daemonize.
67
68 -k | --kill
69 Kill an already running PulseAudio daemon of the calling user
70 (Equivalent to sending a SIGTERM).
71
72 --check
73 Return 0 as return code when the PulseAudio daemon is already
74 running for the calling user, or non-zero otherwise. Produces no
75 output on the console except for errors to stderr.
76
77 --system[=BOOL]
78 Run as system-wide instance instead of per-user. Please note
79 that this disables certain features of PulseAudio and is gener‐
80 ally not recommended unless the system knows no local users
81 (e.g. is a thin client). This feature needs special configura‐
82 tion and a dedicated UNIX user set up. It is highly recommended
83 to combine this with --disallow-module-loading (see below).
84
85 -D | --daemonize[=BOOL]
86 Daemonize after startup, i.e. detach from the terminal. Note
87 that when running as a systemd service you should use --daemo‐
88 nize=no for systemd notification to work.
89
90 --fail[=BOOL]
91 Fail startup when any of the commands specified in the startup
92 script default.pa (see below) fails.
93
94 --high-priority[=BOOL]
95 Try to acquire a high Unix nice level. This will only succeed if
96 the calling user has a non-zero RLIMIT_NICE resource limit set
97 (on systems that support this), or we're called SUID root (see
98 below), or we are configure to be run as system daemon (see
99 --system above). It is recommended to enable this, since it is
100 only a negligible security risk (see below).
101
102 --realtime[=BOOL]
103 Try to acquire a real-time scheduling for PulseAudio's I/O
104 threads. This will only succeed if the calling user has a non-
105 zero RLIMIT_RTPRIO resource limit set (on systems that support
106 this), or we're called SUID root (see below), or we are config‐
107 ure to be run as system daemon (see --system above). It is rec‐
108 ommended to enable this only for trusted users, since it is a
109 major security risk (see below).
110
111 --disallow-module-loading[=BOOL]
112 Disallow module loading after startup. This is a security fea‐
113 ture since it disallows additional module loading during runtime
114 and on user request. It is highly recommended when --system is
115 used (see above). Note however, that this breaks certain fea‐
116 tures like automatic module loading on hot plug.
117
118 --disallow-exit[=BOOL]
119 Disallow user requested exit
120
121 --exit-idle-time=SECS
122 Terminate the daemon after the last client quit and this time in
123 seconds passed. Use a negative value to disable this feature.
124 Defaults to 20.
125
126 When PulseAudio runs in the per-user mode and detects a login
127 session, then any positive value will be reset to 0 so that
128 PulseAudio will terminate immediately on logout. A positive
129 value therefore has effect only in environments where there's no
130 support for login session tracking. A negative value can still
131 be used to disable any automatic exit.
132
133 When PulseAudio runs in the system mode, automatic exit is
134 always disabled, so this option does nothing.
135
136 --scache-idle-time=SECS
137 Unload autoloaded samples from the cache when they haven't been
138 used for the specified number of seconds.
139
140 --log-level[=LEVEL]
141 If an argument is passed, set the log level to the specified
142 value, otherwise increase the configured verbosity level by one.
143 The log levels are numerical from 0 to 4, corresponding to
144 error, warn, notice, info, debug. Default log level is notice,
145 i.e. all log messages with lower log levels are printed: error,
146 warn, notice.
147
148 -v | --verbose
149 Increase the configured verbosity level by one (see --log-level
150 above). Specify multiple times to increase log level multiple
151 times.
152
153 --log-target={auto,syslog,journal,stderr,file:PATH,newfile:PATH}
154 Specify the log target. If set to auto (which is the default),
155 then logging is directed to syslog when --daemonize is passed,
156 otherwise to STDERR. If set to journal logging is directed to
157 the systemd journal. If set to file:PATH, logging is directed to
158 the file indicated by PATH. newfile:PATH is otherwise the same
159 as file:PATH, but existing files are never overwritten. If the
160 specified file already exists, a suffix is added to the file
161 name to avoid overwriting.
162
163 --log-meta[=BOOL]
164 Show source code location in log messages.
165
166 --log-time[=BOOL]
167 Show timestamps in log messages.
168
169 --log-backtrace=FRAMES
170 When FRAMES is greater than 0, log for each message a stack
171 trace up to the number of specified stack frames.
172
173 -p | --dl-search-path=PATH
174 Set the search path for dynamic shared objects (plugins).
175
176 --resample-method=METHOD
177 Use the specified resampler by default (See --dump-resample-
178 methods above for possible values).
179
180 --use-pid-file[=BOOL]
181 Create a PID file. If this options is disabled it is possible to
182 run multiple sound servers per user.
183
184 --no-cpu-limit[=BOOL]
185 Do not install CPU load limiter on platforms that support it. By
186 default, PulseAudio will terminate itself when it notices that
187 it takes up too much CPU time. This is useful as a protection
188 against system lockups when real-time scheduling is used (see
189 below). Disabling this mechanism is useful when debugging
190 PulseAudio with tools like valgrind(1) which slow down execu‐
191 tion.
192
193 --disable-shm[=BOOL]
194 PulseAudio clients and the server can exchange audio data via
195 POSIX or memfd shared memory segments (on systems that support
196 this). If disabled PulseAudio will communicate exclusively over
197 sockets. Please note that data transfer via shared memory seg‐
198 ments is always disabled when PulseAudio is running with --sys‐
199 tem enabled (see above).
200
201 --enable-memfd[=BOOL]
202 PulseAudio clients and the server can exchange audio data via
203 memfds - the anonymous Linux Kernel shared memory mechanism (on
204 kernels that support this). If disabled PulseAudio will communi‐
205 cate via POSIX shared memory.
206
207 -L | --load="MODULE ARGUMENTS"
208 Load the specified plugin module with the specified arguments.
209
210 -F | --file=FILENAME
211 Run the specified script on startup. May be specified multiple
212 times to specify multiple scripts to be run in order. Combine
213 with -n to disable loading of the default script default.pa (see
214 below).
215
216 -C Open a command interpreter on STDIN/STDOUT after startup. This
217 may be used to configure PulseAudio dynamically during runtime.
218 Equivalent to --load=module-cli.
219
220 -n Don't load default script file default.pa (see below) on
221 startup. Useful in conjunction with -C or --file.
222
224 ~/.config/pulse/daemon.conf, /etc/pulse/daemon.conf: configuration set‐
225 tings for the PulseAudio daemon. If the version in the user's home
226 directory does not exist the global configuration file is loaded. See
227 pulse-daemon.conf(5) for more information.
228
229 ~/.config/pulse/default.pa, /etc/pulse/default.pa: the default configu‐
230 ration script to execute when the PulseAudio daemon is started. If the
231 version in the user's home directory does not exist the global configu‐
232 ration script is loaded. See default.pa(5) for more information.
233
234 ~/.config/pulse/client.conf, /etc/pulse/client.conf: configuration set‐
235 tings for PulseAudio client applications. If the version in the user's
236 home directory does not exist the global configuration file is loaded.
237 See pulse-client.conf(5) for more information.
238
240 SIGINT, SIGTERM: the PulseAudio daemon will shut down (Same as --kill).
241
242 SIGHUP: dump a long status report to STDOUT or syslog, depending on the
243 configuration.
244
245 SIGUSR1: load module-cli, allowing runtime reconfiguration via
246 STDIN/STDOUT.
247
248 SIGUSR2: load module-cli-protocol-unix, allowing runtime reconfigura‐
249 tion via a AF_UNIX socket. See pacmd(1) for more information.
250
252 Group pulse-rt: if the PulseAudio binary is marked SUID root, then mem‐
253 bership of the calling user in this group decides whether real-time
254 and/or high-priority scheduling is enabled. Please note that enabling
255 real-time scheduling is a security risk (see below).
256
257 Group pulse-access: if PulseAudio is running as a system daemon (see
258 --system above) access is granted to members of this group when they
259 connect via AF_UNIX sockets. If PulseAudio is running as a user daemon
260 this group has no meaning.
261
262 User pulse, group pulse: if PulseAudio is running as a system daemon
263 (see --system above) and is started as root the daemon will drop privi‐
264 leges and become a normal user process using this user and group. If
265 PulseAudio is running as a user daemon this user and group has no mean‐
266 ing.
267
269 To minimize the risk of drop-outs during playback it is recommended to
270 run PulseAudio with real-time scheduling if the underlying platform
271 supports it. This decouples the scheduling latency of the PulseAudio
272 daemon from the system load and is thus the best way to make sure that
273 PulseAudio always gets CPU time when it needs it to refill the hardware
274 playback buffers. Unfortunately this is a security risk on most sys‐
275 tems, since PulseAudio runs as user process, and giving realtime sched‐
276 uling privileges to a user process always comes with the risk that the
277 user misuses it to lock up the system -- which is possible since making
278 a process real-time effectively disables preemption.
279
280 To minimize the risk PulseAudio by default does not enable real-time
281 scheduling. It is however recommended to enable it on trusted systems.
282 To do that start PulseAudio with --realtime (see above) or enabled the
283 appropriate option in daemon.conf. Since acquiring realtime scheduling
284 is a privileged operation on most systems, some special changes to the
285 system configuration need to be made to allow them to the calling user.
286 Two options are available:
287
288 On newer Linux systems the system resource limit RLIMIT_RTPRIO (see
289 setrlimit(2) for more information) can be used to allow specific users
290 to acquire real-time scheduling. This can be configured in /etc/secu‐
291 rity/limits.conf, a resource limit of 9 is recommended.
292
293 Alternatively, the SUID root bit can be set for the PulseAudio binary.
294 Then, the daemon will drop root privileges immediately on startup, how‐
295 ever retain the CAP_NICE capability (on systems that support it), but
296 only if the calling user is a member of the pulse-rt group (see above).
297 For all other users all capabilities are dropped immediately. The
298 advantage of this solution is that the real-time privileges are only
299 granted to the PulseAudio daemon -- not to all the user's processes.
300
301 Alternatively, if the risk of locking up the machine is considered too
302 big to enable real-time scheduling, high-priority scheduling can be
303 enabled instead (i.e. negative nice level). This can be enabled by
304 passing --high-priority (see above) when starting PulseAudio and may
305 also be enabled with the appropriate option in daemon.conf. Negative
306 nice levels can only be enabled when the appropriate resource limit
307 RLIMIT_NICE is set (see setrlimit(2) for more information), possibly
308 configured in /etc/security/limits.conf. A resource limit of 31 (corre‐
309 sponding with nice level -11) is recommended.
310
312 The PulseAudio client libraries check for the existence of the follow‐
313 ing environment variables and change their local configuration accord‐
314 ingly:
315
316 $PULSE_SERVER: the server string specifying the server to connect to
317 when a client asks for a sound server connection and doesn't explicitly
318 ask for a specific server. The server string is a list of server
319 addresses separated by whitespace which are tried in turn. A server
320 address consists of an optional address type specifier (unix:, tcp:,
321 tcp4:, tcp6:), followed by a path or host address. A host address may
322 include an optional port number. A server address may be prefixed by a
323 string enclosed in {}. In this case the following server address is
324 ignored unless the prefix string equals the local hostname or the
325 machine id (/etc/machine-id).
326
327 $PULSE_SINK: the symbolic name of the sink to connect to when a client
328 creates a playback stream and doesn't explicitly ask for a specific
329 sink.
330
331 $PULSE_SOURCE: the symbolic name of the source to connect to when a
332 client creates a record stream and doesn't explicitly ask for a spe‐
333 cific source.
334
335 $PULSE_BINARY: path of PulseAudio executable to run when server auto-
336 spawning is used.
337
338 $PULSE_CLIENTCONFIG: path of file that shall be read instead of
339 client.conf (see above) for client configuration.
340
341 $PULSE_COOKIE: path of file that contains the PulseAudio authentication
342 cookie. Defaults to ~/.config/pulse/cookie.
343
344 These environment settings take precedence -- if set -- over the con‐
345 figuration settings from client.conf (see above).
346
348 The PulseAudio Developers <pulseaudio-discuss (at) lists (dot)
349 freedesktop (dot) org>; PulseAudio is available from http://pulseau‐
350 dio.org/
351
353 pulse-daemon.conf(5), default.pa(5), pulse-client.conf(5), pacmd(1)
354
355
356
357Manuals User pulseaudio(1)