とりあえず・・・「MuBox-i4」の不要なサービスを止める

(注)「MuBox-i4」とは、「CuBox-i4Pro」に「Voyage Mubox」を組み込んだもので、私が勝手に命名しました。

CuBox-i4Pro

「MuBox-i4」が誇る「Quad Core(4コア)」がキチン動作していることを確認し、音質面でのメリットも実感できたので、次はお約束の「不要なサービス」の停止を行いました。
不要なサービスの停止と言えば「sysv-rc-conf」がお約束でした。

ところが、「apt-get install sysv-rc-conf」としても上手く組み込めないので、debianの王道(?)を行くことにしました。

まずはランレベルを確認します。

root@voyage-mubox:~# runlevel
N 2

「MuBox-i4」はランレベル2で動いていることが分かります。
と言うことは、自動的に起動するサービスは「/etc/rc2.d/」に格納されていることになりますので、そこへ移動して中味を確認します。

root@voyage-mubox:~# cd /etc/rc2.d/
root@voyage-mubox:/etc/rc2.d# ls -F
README S01motd@ S12rpcbind@ S15inetutils-syslogd@ S16dbus@ S16ssh@ S17mpd@ S18rc.local@ S18watchdog@ S01bootlogs@ S01php-fastcgi@ S13nfs-common@ S15wd_keepalive@ S16dnsmasq@ S17cron@ S17rsync@ S18voyage-util@

既にいくつかのサービスを停止させた後なので数は少なくなっています。(avahi-daemon・lirc ・sudo・nginxあたりを停止しています。)

何だかよく分からないのですが(^^;、例えば「S17mpd@ 」というのは「/etc/init.d/mpd」という起動用のスクリプトへのシンボリックリンクです。「MuBox-i4」はランレベル2で起動するので、「/etc/rc2.d/」のシンボリックリンクを読み込んで自動的にサービスを起ち上げる仕組みになっています。
ですから、起動時にサービスが立ち上がるのをやめたいときはこのシンボリックリンクを消せばいいのですが、普通はそんな乱暴なことはしないで「update-rc.d 」というコマンドを使います。

例えば、もうブラウザからからのGUI画面で管理する必要がないのならば、「avahi-daemon(ホスト名での接続)」や「nginx(HTTPサーバー)」は不要ですから、以下のようにして自動的に起動するのを停止します。

root@voyage-mubox:/etc/rc2.d# update-rc.d -f avahi-daemon remove
root@voyage-mubox:/etc/rc2.d# update-rc.d -f nginx remove

逆に復活したいときは次のようにします。

root@voyage-mubox:/etc/rc2.d# update-rc.d -f avahi-daemon defaults
root@voyage-mubox:/etc/rc2.d# update-rc.d -f nginx defaults

これが正しい作法のようです。

ただし、確認してみて気づいたのですが、デフォルトの状態で既に不要なサービスはかなり大幅に刈り込まれています。ですから、サービスを刈り込んでもほとんど気休めのような気がします。
とは言え、自分の環境で刈り込めそうなのは以下の通りです。

  1. 「sudo」は最初からroot権限でログインするので不要でしょう。
  2. 「lirc」も赤外線を使ったリモコン操作のための機能を提供するものなで不要だと思います。
  3. 「php-fastcgi 」は「nginx(HTTPサーバー)」でPHPが使えるようにするものなので、最初から「nginx(HTTPサーバー)」を使わないのならば不要だと思います。
  4. 「nfs-common」も「MuBox-i4」を「NFSサーバー」として使う気がないのならば不要だと思います。NFSクライアントとしてNASをマウントするだけならば不要だと思います。

こんな感じでサービスの自動起動を停止できます。

  1. root@voyage-mubox:/etc/rc2.d# update-rc.d -f sudo remove
  2. root@voyage-mubox:/etc/rc2.d# update-rc.d -f lirc remove
  3. root@voyage-mubox:/etc/rc2.d# update-rc.d -f php-fastcgi remove
  4. root@voyage-mubox:/etc/rc2.d# update-rc.d -f nfs-common remove

結果的にはこうなりました。

root@voyage-mubox:/etc/rc2.d# ls -F
README S01bootlogs@ S01motd@ S12rpcbind@ S15inetutils-syslogd@ S15wd_keepalive@ S16dbus@ S16dnsmasq@ S16ssh@ S17cron@ S17mpd@ S17rsync@ S18rc.local@ S18voyage-util@ S18watchdog@

topコマンドでPCの挙動を確認すると以下のようになっています。

root@voyage-mubox:/etc/rc2.d# top -d 10
top – 14:06:03 up 10 min, 1 user, load average: 4.06, 3.56, 2.00
Tasks: 83 total, 1 running, 82 sleeping, 0 stopped, 0 zombie
%Cpu0 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu1 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu2 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu3 : 0.1 us, 0.0 sy, 0.0 ni, 99.9 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem: 1804684 total, 151100 used, 1653584 free, 1588 buffers
KiB Swap: 0 total, 0 used, 0 free, 62484 cached

デフォルトでは「Tasks: 89 total, 1 running, 88 sleeping,」でした。6つのサービスを停止したのできっちりと6つ減っていますね。

ただし、これで音質面でのメリットがどれだけあるかは全く不明です。それくらい、デフォルトの「MuBox-i4」はしっかりと作り込まれています。
それに、考えてみれば「MuBox-i4」は「Quad Core(4コア)」ですから、こんな風にチマチマとサービスを刈り込む必要があるのかどうかがそもそも疑問です。前回も触れましたが、マルチコアの最大のメリットは「複数のソフトを同時に起ち上げて作業させても遅くならない」事です。これくらいのサービスが最初から起動していても、それが音楽再生に何らかの悪影響を及ぼすとは考えにくいです。
ですから、ほとんど精神衛生上のメリットくらいしかないのかもしれません。

なお、上記のサービスを停止することで操作が不安定になったり、不便を感じたりすれば先に述べたように「update-rc.d -f nginx defaults」のようにして簡単に元に戻せます。

それよりは、ハード面でHDMI端子や場合によっては光出力端子を無効にした方がメリットが大きいように思うのですが、残念ながら、現時点ではやり方がよく分かりません。
ネット上ではHDMI端子を有効にするために苦闘している情報は山ほどあるのですが、最初から有り難くも有効になっているものを無効にしたいという「阿呆」はあまりいないようで、ほしい情報がなかなか入手できません。
ただし、これ絡みで、あらためて「alsa」の技術情報に触れて勉強になることが多かったです。「alsa」の奥の深さに驚かされることが多かったですね。