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 when idle and the specified number of sec‐
123              onds passed.
124
125       --scache-idle-time=SECS
126              Unload autoloaded samples from the cache when they haven't  been
127              used for the specified number of seconds.
128
129       --log-level[=LEVEL]
130              If  an  argument  is  passed, set the log level to the specified
131              value, otherwise increase the configured verbosity level by one.
132              The  log  levels  are  numerical  from  0 to 4, corresponding to
133              error, warn, notice, info, debug. Default log level  is  notice,
134              i.e.  all log messages with lower log levels are printed: error,
135              warn, notice.
136
137       -v | --verbose
138              Increase the configured verbosity level by one (see  --log-level
139              above).  Specify  multiple  times to increase log level multiple
140              times.
141
142       --log-target={auto,syslog,journal,stderr,file:PATH,newfile:PATH}
143              Specify the log target. If set to auto (which is  the  default),
144              then  logging  is directed to syslog when --daemonize is passed,
145              otherwise to STDERR. If set to journal logging  is  directed  to
146              the systemd journal. If set to file:PATH, logging is directed to
147              the file indicated by PATH. newfile:PATH is otherwise  the  same
148              as  file:PATH,  but existing files are never overwritten. If the
149              specified file already exists, a suffix is  added  to  the  file
150              name to avoid overwriting.
151
152       --log-meta[=BOOL]
153              Show source code location in log messages.
154
155       --log-time[=BOOL]
156              Show timestamps in log messages.
157
158       --log-backtrace=FRAMES
159              When  FRAMES  is  greater  than  0, log for each message a stack
160              trace up to the number of specified stack frames.
161
162       -p | --dl-search-path=PATH
163              Set the search path for dynamic shared objects (plugins).
164
165       --resample-method=METHOD
166              Use the specified resampler  by  default  (See  --dump-resample-
167              methods above for possible values).
168
169       --use-pid-file[=BOOL]
170              Create a PID file. If this options is disabled it is possible to
171              run multiple sound servers per user.
172
173       --no-cpu-limit[=BOOL]
174              Do not install CPU load limiter on platforms that support it. By
175              default,  PulseAudio  will terminate itself when it notices that
176              it takes up too much CPU time. This is useful  as  a  protection
177              against  system  lockups  when real-time scheduling is used (see
178              below).  Disabling  this  mechanism  is  useful  when  debugging
179              PulseAudio  with  tools  like valgrind(1) which slow down execu‐
180              tion.
181
182       --disable-shm[=BOOL]
183              PulseAudio clients and the server can exchange  audio  data  via
184              POSIX  or  memfd shared memory segments (on systems that support
185              this). If disabled PulseAudio will communicate exclusively  over
186              sockets.  Please  note that data transfer via shared memory seg‐
187              ments is always disabled when PulseAudio is running with  --sys‐
188              tem enabled (see above).
189
190       --enable-memfd[=BOOL]
191              PulseAudio  clients  and  the server can exchange audio data via
192              memfds - the anonymous Linux Kernel shared memory mechanism  (on
193              kernels that support this). If disabled PulseAudio will communi‐
194              cate via POSIX shared memory.
195
196       -L | --load="MODULE ARGUMENTS"
197              Load the specified plugin module with the specified arguments.
198
199       -F | --file=FILENAME
200              Run the specified script on startup. May be  specified  multiple
201              times  to  specify  multiple scripts to be run in order. Combine
202              with -n to disable loading of the default script default.pa (see
203              below).
204
205       -C     Open  a  command interpreter on STDIN/STDOUT after startup. This
206              may be used to configure PulseAudio dynamically during  runtime.
207              Equivalent to --load=module-cli.
208
209       -n     Don't  load  default  script  file  default.pa  (see  below)  on
210              startup. Useful in conjunction with -C or --file.
211

FILES

213       ~/.config/pulse/daemon.conf, /etc/pulse/daemon.conf: configuration set‐
214       tings  for  the  PulseAudio  daemon.  If the version in the user's home
215       directory does not exist the global configuration file is  loaded.  See
216       pulse-daemon.conf(5) for more information.
217
218       ~/.config/pulse/default.pa, /etc/pulse/default.pa: the default configu‐
219       ration script to execute when the PulseAudio daemon is started. If  the
220       version in the user's home directory does not exist the global configu‐
221       ration script is loaded. See default.pa(5) for more information.
222
223       ~/.config/pulse/client.conf, /etc/pulse/client.conf: configuration set‐
224       tings  for PulseAudio client applications. If the version in the user's
225       home directory does not exist the global configuration file is  loaded.
226       See pulse-client.conf(5) for more information.
227

SIGNALS

229       SIGINT, SIGTERM: the PulseAudio daemon will shut down (Same as --kill).
230
231       SIGHUP: dump a long status report to STDOUT or syslog, depending on the
232       configuration.
233
234       SIGUSR1:  load  module-cli,  allowing   runtime   reconfiguration   via
235       STDIN/STDOUT.
236
237       SIGUSR2:  load  module-cli-protocol-unix, allowing runtime reconfigura‐
238       tion via a AF_UNIX socket. See pacmd(1) for more information.
239

UNIX GROUPS AND USERS

241       Group pulse-rt: if the PulseAudio binary is marked SUID root, then mem‐
242       bership  of  the  calling  user in this group decides whether real-time
243       and/or high-priority scheduling is enabled. Please note  that  enabling
244       real-time scheduling is a security risk (see below).
245
246       Group  pulse-access:  if  PulseAudio is running as a system daemon (see
247       --system above) access is granted to members of this  group  when  they
248       connect  via AF_UNIX sockets. If PulseAudio is running as a user daemon
249       this group has no meaning.
250
251       User pulse, group pulse: if PulseAudio is running as  a  system  daemon
252       (see --system above) and is started as root the daemon will drop privi‐
253       leges and become a normal user process using this user  and  group.  If
254       PulseAudio is running as a user daemon this user and group has no mean‐
255       ing.
256

REAL-TIME AND HIGH-PRIORITY SCHEDULING

258       To minimize the risk of drop-outs during playback it is recommended  to
259       run  PulseAudio  with  real-time  scheduling if the underlying platform
260       supports it. This decouples the scheduling latency  of  the  PulseAudio
261       daemon  from the system load and is thus the best way to make sure that
262       PulseAudio always gets CPU time when it needs it to refill the hardware
263       playback  buffers.  Unfortunately  this is a security risk on most sys‐
264       tems, since PulseAudio runs as user process, and giving realtime sched‐
265       uling  privileges to a user process always comes with the risk that the
266       user misuses it to lock up the system -- which is possible since making
267       a process real-time effectively disables preemption.
268
269       To  minimize  the  risk PulseAudio by default does not enable real-time
270       scheduling. It is however recommended to enable it on trusted  systems.
271       To  do that start PulseAudio with --realtime (see above) or enabled the
272       appropriate option in daemon.conf. Since acquiring realtime  scheduling
273       is  a privileged operation on most systems, some special changes to the
274       system configuration need to be made to allow them to the calling user.
275       Two options are available:
276
277       On  newer  Linux  systems  the system resource limit RLIMIT_RTPRIO (see
278       setrlimit(2) for more information) can be used to allow specific  users
279       to  acquire  real-time scheduling. This can be configured in /etc/secu‐
280       rity/limits.conf, a resource limit of 9 is recommended.
281
282       Alternatively, the SUID root bit can be set for the PulseAudio  binary.
283       Then, the daemon will drop root privileges immediately on startup, how‐
284       ever retain the CAP_NICE capability (on systems that support  it),  but
285       only if the calling user is a member of the pulse-rt group (see above).
286       For all other users  all  capabilities  are  dropped  immediately.  The
287       advantage  of  this  solution is that the real-time privileges are only
288       granted to the PulseAudio daemon -- not to all the user's processes.
289
290       Alternatively, if the risk of locking up the machine is considered  too
291       big  to  enable  real-time  scheduling, high-priority scheduling can be
292       enabled instead (i.e. negative nice level).  This  can  be  enabled  by
293       passing  --high-priority  (see  above) when starting PulseAudio and may
294       also be enabled with the appropriate option  in  daemon.conf.  Negative
295       nice  levels  can  only  be enabled when the appropriate resource limit
296       RLIMIT_NICE is set (see setrlimit(2) for  more  information),  possibly
297       configured in /etc/security/limits.conf. A resource limit of 31 (corre‐
298       sponding with nice level -11) is recommended.
299

ENVIRONMENT VARIABLES

301       The PulseAudio client libraries check for the existence of the  follow‐
302       ing  environment variables and change their local configuration accord‐
303       ingly:
304
305       $PULSE_SERVER: the server string specifying the server  to  connect  to
306       when a client asks for a sound server connection and doesn't explicitly
307       ask for a specific server. The  server  string  is  a  list  of  server
308       addresses  separated  by  whitespace  which are tried in turn. A server
309       address consists of an optional address type  specifier  (unix:,  tcp:,
310       tcp4:,  tcp6:),  followed by a path or host address. A host address may
311       include an optional port number. A server address may be prefixed by  a
312       string  enclosed  in  {}.  In this case the following server address is
313       ignored unless the prefix string  equals  the  local  hostname  or  the
314       machine id (/etc/machine-id).
315
316       $PULSE_SINK:  the symbolic name of the sink to connect to when a client
317       creates a playback stream and doesn't explicitly  ask  for  a  specific
318       sink.
319
320       $PULSE_SOURCE:  the  symbolic  name  of the source to connect to when a
321       client creates a record stream and doesn't explicitly ask  for  a  spe‐
322       cific source.
323
324       $PULSE_BINARY:  path  of PulseAudio executable to run when server auto-
325       spawning is used.
326
327       $PULSE_CLIENTCONFIG: path  of  file  that  shall  be  read  instead  of
328       client.conf (see above) for client configuration.
329
330       $PULSE_COOKIE: path of file that contains the PulseAudio authentication
331       cookie. Defaults to ~/.config/pulse/cookie.
332
333       These environment settings take precedence -- if set -- over  the  con‐
334       figuration settings from client.conf (see above).
335

AUTHORS

337       The   PulseAudio   Developers   <pulseaudio-discuss  (at)  lists  (dot)
338       freedesktop (dot) org>; PulseAudio is  available  from  http://pulseau
339       dio.org/
340

SEE ALSO

342       pulse-daemon.conf(5), default.pa(5), pulse-client.conf(5), pacmd(1)
343
344
345
346Manuals                              User                        pulseaudio(1)
Impressum