2015年03月18日

Raspberry Piに【Supervisor】をインストールして、motionをデーモン化してみた

【今日のゴール】
Supervisorをインストールして、プロセスを監視する。
今回は、motionのプロセスをデーモン化してみます。

【Supervisorとは】
プロセス監視ツールです。自分で作ったスクリプトなどをデーモン化するときなどに便利です。

http://supervisord.org/
logo_supervisor.gif

【事前に】
事前に下記エントリーを参考にmotionをインストールしてください。
motion.confのdeamonはoffにしておいてください。

Raspberry Piを監視カメラにしてみた【motion】

【手順】
  • Supervisorのインストール
  • Supervisor の設定
  • Supervisorでmotionのプロセス監視

Supervisorのインストール

下記コマンドでインストールします。他の必要なモジュールも一緒にインストールされます。
$ sudo apt-get update
$ sudo apt-get install supervisor

Supervisor の設定

Supervisorをインストールしたら、「/etc/supervisor/conf.d/」ディレクトリの下に新しくmotion用の設定ファイルを作成します。
$ sudo vi /etc/supervisor/conf.d/motion_sv.conf
[program:motion]
command=/usr/bin/motion  ; 起動コマンド
numprocs=1   ; 起動するプロセス数
redirect_stderr=true  ; エラー出力を標準出力にリダイレクト
stdout_logfile=/var/log/motion.log  ; 標準出力ログのファイル名
user=pi   ; 起動ユーザー
上記のとおりに編集して保存します。

Supervisorでmotionのプロセス監視

下記コマンドで設定を再読み込みすると、motionが有効になります。
$ sudo supervisorctl reread
motion: available
motionをsupervisorのサブプロセスに追加します。
$ sudo supervisorctl add motion
motion: added process group
追加した時点でmotionのプロセスが起動します。下記のコマンドでステータスを確認すると「RUNNING」になっています。
$ sudo supervisorctl status
motion                           RUNNING    pid 7158, uptime 0:00:14
サブプロセスを停止したいときは、stopコマンドを使います。
$ sudo supervisorctl stop motion
$ sudo supervisorctl status
motion                           STOPPED    Mar 18 10:24 AM
サブプロセスを起動するとき
$ sudo supervisorctl start motion
サブプロセスを再起動するとき
$ sudo supervisorctl restart motion
わざわざログファイルを開かなくても、tailコマンドでログをtailできます。
$ sudo supervisorctl tail -1000  motion
$ sudo supervisorctl tail -f  motion

Supervisorのサブプロセスから削除したいときは、一度、停止してから削除します。
$ sudo supervisorctl stop motion
$ sudo supervisorctl remove motion

他のプロセスも追加したいときは「/etc/supervisor/conf.d/」の下に「〜.conf」という名前で設定ファイルを作り同様に「reread」→「add」すれば追加されます。

Supervisor自体の設定は「/etc/supervisor/supervisord.conf」を編集することで変更可能です。
$ sudo vi /etc/supervisor/supervisord.conf



タグ:Raspberry Pi


posted by Raspberry Pi at 11:10 | Raspberry Pi | このブログの読者になる | 更新情報をチェックする