IT教育訓練パパの研究日誌

育児や、データサイエンス系のノウハウや記事、学生へのかかわりで得たこと等、感動したことを書いていきたいです。よろしくお願いいたします。

cron使うときは、絶対パスだと心得よ

このページに書いてあること

cronを使って、1分おきにカメラで撮影したいと思ったのですが、 思ったより、はまったので、メモをしておきます。 できているつもりでしたが、相対パスを記載していたため、バグに気づきませんでした。


cronの設定

下記コマンドで、出力されるファイルを変更する

crontab -e


変更例①

//アスタリスク(*)の意味は左から順に
//分 時 日 月 曜日 コマンド らしい。
//1時間ごとに、0分の時にカメラでキャプチャするなら下記のように
0 */1 * * *   sh /home/pi/Work/capturetest.sh
cronのストップ、再起動、確認

cronの設定を上書きするため、一度、ストップし、再起動して、cronが動いているか確認する そのためのコマンドは下記
◆ストップ

sudo systemctl stop cron


◆再起動

sudo systemctl restart cron


◆動いているか確認

sudo systemctl status cron


下記のようにrunnningと出てれば動いている

cron.service - Regular background program processing daemon
   Loaded: loaded (/lib/systemd/system/cron.service; enabled; vendor preset: ena
   Active: active (running) since Fri 2022-10-28 14:48:52 JST; 7min ago
     Docs: man:cron(8)
 Main PID: 6674 (cron)
    Tasks: 1 (limit: 4915)
   CGroup: /system.slice/cron.service
           mq6674 /usr/sbin/cron -f -L 15
はまったこと

上記の変更例①でcapturetest.shの中身を見ると

/usr/bin/python3 /home/pi/Work/captureTest.py

上記のようにpython3コマンドの絶対パスを記載すること さらに、.pyの中身でパス指定している場合は、絶対パスにしておくこと。 私の場合は、”./”以下に保存するようにpythonで記載していたため、 cronが動いていても、ルート直下に画像が保存されていた。

はまらないで、開発スピードを上げたい。。。。今日この頃