Ubuntuで突然音が鳴らなくなる問題2

http://d.hatena.ne.jp/longicorn/20080512#p1


また発生。
どうもFireFoxとの相性が悪いようだ。


いちいちkillするのも面倒くさいのでちょっとスクリプト(ruby)を書いてみた。

#!/usr/bin/env ruby

#
#Ubuntuで発生している現象への対応
#音が無効になったら/dev/snd/*以下のプロセスを殺す
#念のため、-nで名前を確認した方が良い
#

require 'getopts'

def usage(ret)
  puts "usage #$0 [-hpn] [--help] [--pid] [--process]"
  exit(ret)
end

class Snd
  def initialize
    @pid = `fuser /dev/snd/* 2>/dev/null`.split("\s").uniq.map{|str| str.to_i}
  end
  attr_reader :pid

  def pname
    ret = []
    ps = `ps aux --no-headers`
    ps.each_line do |line|
      word = line.split("\s")
      if @pid.include?(word[1].to_i)
        ret << word[10..-1].join(" ")
      end
    end
    ret
  end

  def kill
    system("kill -kill #{@pid.join(" ")}")
  end
end

unless getopts("hkpn","help","kill","pid","process")
  usage(1)
end

if $OPT_h or $OPT_help
  usage(0)
  exit
end

snd = Snd.new

#print pid
if $OPT_p or $OPT_pid
  puts snd.pid
  exit
end

#print process name
if $OPT_P or $OPT_process
  puts snd.pname
  exit
end

#kill process
if $OPT_k or $OPT_kill
  snd.kill
  exit
end

#Unknown option
usage(0)


でプロセス名を表示してみるとartsdというプロセスが出てきた。

/usr/bin/artsd -F 10 -S 4096 -s 60 -m artsmessage -l 3 -f


検索してみると同じように音が鳴らない現象が出ているみたい。
KDEがからんでいるらしいが、自分はXFceなんだけどなあ。


Wikipediaこれがそうかな?

aRts の重要な構成要素はサウンドサーバであり、リアルタイムで複数のサウンドストリームを混ぜるものである。


とあるから多分複数のアプリで同時にサウンドカードを使えるようにしたものかな?
"grep artsd /etc/init.d/*"をしても引っかからなかったので多分XFceが起動している?
XFceから別の乗り換え先を探したほうが良いかも。