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なんだけどなあ。
aRts の重要な構成要素はサウンドサーバであり、リアルタイムで複数のサウンドストリームを混ぜるものである。
とあるから多分複数のアプリで同時にサウンドカードを使えるようにしたものかな?
"grep artsd /etc/init.d/*"をしても引っかからなかったので多分XFceが起動している?
XFceから別の乗り換え先を探したほうが良いかも。