Juliusを起動するコマンドを最初にきちんと実行しているにもかかわらず何かしら問題が発生している場合は、別掲記事「トラブル対応:バックグラウンドで動作しているJuliusを停止する」を参考にして、いったん「julius」を停止しましょう。その後、再度Juliusを起動したり、Juliusをテストしたりするなど(「$ julius -C ~/julius/julius-test.conf」)、もろもろ試みてみて問題となる箇所を見つけ出してください。

トラブル対応:バックグラウンドで動作しているJuliusを停止する

 juliusコマンドの最後に付いている「&」マークは、そのコマンドをバックグラウンドで実行するという意味です。従って、バックグラウンドで動作するように指示された「julius -C ~/julius/julius.conf」の実行状態は、そのままでは見えません。

 何らかの理由で、JuliusサーバーとJuliusクライアント(ここでは「voice-remocon.py」)が接続できなくなることがあります。その場合は、バックグラウンドで動作しているJuliusサーバーをいったん停止してもう一度起動しなければなりません。しかしながら、バックグラウンドで動いていて表からは見えないプログラムは、どうすれば停止できるのでしょうか?

 このようなケースでは「psコマンド」と「grepコマンド」の組み合わせを使います。次のコマンドを実行すると「julius」というキーワードを持ったプログラムがバックグラウンドでどのような状態になっているのかを知ることができます。

$ ps aux | grep julius 

 「psコマンド」は現在システムが実行中のプログラム(プロセスと呼ばれるもの)のリストをシステムから取得してくれます(バックグラウンドで動作しているものも含まれています)。真ん中の「|」は「ps aux」の結果を次のコマンドに渡す役割を果たすもので「パイプ」と呼ばれます。「grepコマンド」は文字列の中に特定の文字列がないかどうかを調べるコマンドです。ここではパイプを通して受け取った文字列の中に「julius」が含まれているかどうかをチェックしているわけです。

 図Cが実行結果の一例です。このように、文字列の中に「julius」が見つかれば、その部分を赤色で表示してくれます。この例では2行表示されています。1行目が「julius -C /home/pi/julius/julius.conf」となっていることから、これがバックグラウンドで起動しているプログラムであることが分かります(2行目は「grep」という文字が入っていることから分かるように、これは先ほど実行した「$ ps aux | grep julius」をいうコマンド自身です)。

図C●Juliusを探すコマンド

 この行の最初に現れる数字(プロセスID)を指定して、次のコマンドを実行すれば、このプロセスを停止できます。

$ sudo kill -KILL 4276 
瀬谷 啓介(せや けいすけ)
Double Bind(ダブルバインド)代表取締役社長
「アジャイルソフトウェア開発の奥義」「まるごと学ぶiPhoneアプリ制作教室」 などソフトウェア・プログラミング関連の著書・訳書多数。オンラインIT動画学習サイト「zero2one」を運営。幅広くIT教育に関わる。日本TI半導体グループ技術主任、日本AMD次世代製品開発センター長、 フィルモアアドバイザリーCTO・執行役員などを歴任。小型飛行機免許所有、理論物理学学士、物性物理学修士。