Skip to content
July 15, 2010 / ftth

Finding which application is blocking access to an audio device on Linux

Many Linux applications will lock access to a device (e.g. Alsa audio source) when using it; the ones that don’t are the ones using daemons implementing resource sharing (e.g. PulseAudio server), and these are sometimes the ones that don’t work, so you might need this tip with either legacy software or when having trouble with middle layer daemons.

Classical case would be when a Flash player does not render audio, and you don’t undestand why; let’s just find the process using the audio device (thus, blocking access to the Flash player), and kill it.

To find which application is blocking the device, let’s just use the fuser UNIX utility:

user@machine:~$ fuser -v /dev/snd/*

USER        PID ACCESS COMMAND
/dev/snd/controlC0:  user   17365 F…. gst-launch-0.10
/dev/snd/pcmC0D0c:   user   17365 F…m gst-launch-0.10
/dev/snd/pcmC0D0p:   user   17365 F…m gst-launch-0.10
Now, let’s just kill the application using kill:
kill 17365
Note: you can also use lsof for this, but it will list ALL open files on the system, and is very resource-consuming.
Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: