スマートカードリーダー用サービスが再起動すると起動していない問題

いろいろテストしていると、リブートした後にどうもB25デコードが失敗している様子だったので、調べてみた。まず起動直後に

$ pcsc_scan

をすると読み込んでいない。

$ /sbin/service pcscd start

$ pcsc_scan

とすると動作しているので、どうも起動時にpcscdが起動できていない様子。

ログを調べてみると

$ vi /var/log/messages

pcscd: hotplug_libhal.c:490:HPRegisterForHotplugEvents() Could not initialise connection to hald.

pcscd: hotplug_libhal.c:491:HPRegisterForHotplugEvents() Normally this means the HAL daemon (hald) is not running or not ready.

とのこと。調べてみると、pcscdは起動するのに必要なサービスがあり、さらにそのサービスを起動するためのサービスがあるようです。Free Dynamic DNS(DDNS) by POP3,IMAP4,FTP,HTTP-BASIC for Home Server, VPS | MyDNS.JP起動時にサービスを開始する順番が間違っているのだろうということで調べてみると

$ ls /etc/rc.d/rc3.d/

S22messagebus

S26haldaemon

S25pcscd

上から順番に起動順ですが、2番目と3番目が順番が間違っています。

ということで、ここを修正します。サービス名の先頭に記載されている数字が起動順です。ちなみにSはStart、KはKillだったはず。

必要なランレベルのrc.dで修正を行います。

これで正常に動作することを確認しました。

comments powered by Disqus