1pulseaudio(1)               General Commands Manual              pulseaudio(1)
2
3
4

NAME

6       pulseaudio - The PulseAudio Sound System
7

SYNOPSIS

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

DESCRIPTION

30       PulseAudio is a networked low-latency sound server for Linux, POSIX and
31       Windows systems.
32

OPTIONS

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

FILES

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

SIGNALS

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

UNIX GROUPS AND USERS

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

REAL-TIME AND HIGH-PRIORITY SCHEDULING

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

ENVIRONMENT VARIABLES

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

AUTHORS

348       The  PulseAudio  Developers  <pulseaudio-discuss   (at)   lists   (dot)
349       freedesktop  (dot)  org>;  PulseAudio is available from http://pulseau
350       dio.org/
351

SEE ALSO

353       pulse-daemon.conf(5), default.pa(5), pulse-client.conf(5), pacmd(1)
354
355
356
357Manuals                              User                        pulseaudio(1)
Impressum