先日インストールしたmotionを自動起動しようしたところ、少し手こずったのでメモっておく。
hirotaka-hachiya.hatenablog.com
まず、サービス自動起動の設定ツールsysv-rc-confをインストールする。
>sudo apt-get install sysv-rc-conf
そして、sysv-rc-confを実行し、motionのrun level2,3,4,5をスペースキーでオンにする。
終了は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 5月 30 18:43 motion.log > ls -ld /var/log/motion drwxr-s--- 2 motion adm 4096 5月 30 18:43 /var/log/motion