覚え書きブログ

読者です 読者をやめる 読者になる 読者になる

Raspberry Piの覚え書き(motionの自動起動編)

先日インストールしたmotionを自動起動しようしたところ、少し手こずったのでメモっておく。
hirotaka-hachiya.hatenablog.com

まず、サービス自動起動の設定ツールsysv-rc-confをインストールする。

>sudo apt-get install sysv-rc-conf

そして、sysv-rc-confを実行し、motionのrun level2,3,4,5をスペースキーでオンにする。
f:id:hirotaka_hachiya:20160530182239p:plain
終了はqキーを入力する。

次に、/etc/default/motionの「start_motion_daemon」を以下のように編集する。

> sudo /etc/default/motion
# set to 'yes' to enable the motion daemon
start_motion_daemon=yes

そして、/etc/init.d/motionを実行してみると以下のようなエラーがでる。その後何度か実行してみたところ、今度はエラーがでていないが、psで見てみると実行されていない。

> sudo /etc/init.d/motion start
[ ok ] Starting motion (via systemctl): motion.service.

Broadcast message from systemd-journald@RasPi3 (Mon 2016-05-30 18:32:43 JST):

motion[5447]: [8181056] [EMG] [ALL] motion_startup: Exit motion, cannot create log file /var/log/motion/motion.log: Permission denied

> sudo /etc/init.d/motion start
[ ok ] Starting motion (via systemctl): motion.service.
> sudo /etc/init.d/motion start
[ ok ] Starting motion (via systemctl): motion.service.
> ps  -def | grep motion
hachiya   5826  2461  0 18:36 pts/2    00:00:00 grep --color=auto motion

どうやら以前motionを直接実行したときに、ログファイル「/var/log/motion/motion.log」がroot権限で作られていて、自動起動スクリプト「/etc/init.d/motion」が以下のようにパーミッションと所有者を変えることが出来なくてエラーが出ているようだ。

> vi /etc/init.d/motion

        if ! [ -d /var/log/motion ]; then
            mkdir -m 02750 /var/log/motion
            chown motion:adm /var/log/motion
        fi

そこで、次のようにディレクトリ「/var/log/motion」を削除して実行しなおしたところ問題なく起動できるようになった。

> sudo rm -R /var/log/motion
> sudo /etc/init.d/motion start
[ ok ] Starting motion (via systemctl): motion.service.
> ps -def | grep motion
motion    6228     1  1 18:43 ?        00:00:00 /usr/bin/motion
hachiya   6232  2461  0 18:43 pts/2    00:00:00 grep --color=auto motion
> ls -l /var/log/motion
total 8
-rw-r--r-- 1 motion adm 4478  530 18:43 motion.log
> ls -ld /var/log/motion
drwxr-s--- 2 motion adm 4096  530 18:43 /var/log/motion