【Raspberry Pi】なぜかcronが動かない
cronが動かない!!
pythonを利用して、「togglという作業時間管理ツールのapiから今週の作業時間を取得して、raspberrypiにつなげた電子ペーパーに表示する」というコードを書き、それをcronを使って30分毎に動かそうと思ったのだかうまく動かなかった。
解決
pythonのコードの中で環境変数を使っていたのが問題みたい。
togglのapiキーを環境変数に設定して、 コード内で
os.environ.get("TOGGL_API")
のようにしていたのが良くなかったみたい。
cronを使用する場合にcronが取得できる環境変数は、ユーザが取り出せる環境変数とは違うみたい。
なので、cronを利用してpythonのコードを使用する前に、一度環境変数の設定を読み込ませるといまく行った。
TOGGL_API=[ここにtogglのapiキー]
*/30 * * * * /usr/bin/python3 /home/sikakamo/src/epaper/eink2.13_show_toggltime,py
このように変更するとうまく行った。
感想
apiキーを使うときは環境変数を使うといいよ!、これを見かけて環境変数をコード内で使ってみよう!と張り切っていたけど、linuxのことが色々わからないことがわかったよ!!!
シェル、環境変数、シェル変数、デーモン、ログインシェル、ノンログインシェル・・・・・・
わからない!!!
これらをいい感じに体型的に学べる資料がありましたらぜひ教えてください。(Twitterなどで)