

はじめまして  
Linux初心者です、ネット上に類似案件が見当たらなかったので質問させていただきます。

ラズパイ上で

[code]

    sudo crontab -e
    
[/code]

からエディタを起動し、

[code]

    10 * * * * /usr/bin/python3 /home/pi/Desktop/seminar/room-pub.py;
    
[/code]

と設定するとPythonが動くのですが、上記を

[code]

    @reboot /usr/bin/python3 /home/pi/Desktop/seminar/room-pub.py;
    
[/code]

と設定しても再起動時に動いてくれません。

どのような確認をすべきでしょうか？  
cron.logは以下のようになっております。

■正常に動作時

[code]

    Jun 12 16:34:01 raspberrypi CRON[1695]: (root) CMD (/usr/bin/python3 /home/pi/Desktop/seminar/room-pub.py;)
    
[/code]

■@reboot 設定時

[code]

    Jun 12 17:17:07 raspberrypi cron[412]: (CRON) INFO (pidfile fd = 3)
    Jun 12 17:17:07 raspberrypi cron[412]: (CRON) INFO (Running @reboot jobs)
    Jun 12 17:17:07 raspberrypi CRON[464]: (root) CMD (/usr/bin/python3 /home/pi/Desktop/seminar/room-pub.py;)
    Jun 12 17:17:09 raspberrypi CRON[423]: (root) MAIL (mailed 785 bytes of output but got status 0x0001 from MTA#012)
    
[/code]

以上になります。  
よろしくお願いいたします。

※追記  
@take88 様 @masm 様  
ご指摘ありがとうございます。

  * `/var/spool/mail/root` を確認してみましたが、ファイルが存在しませんでした。
  * 末尾の「`;`」を削除してみましたが改善されませんでした。
  * `@reboot /usr/bin/python3 /home/pi/Desktop/seminar/room-pub.py > /tmp/room-pub.log 2>&1` に変更してみました、出力されたコードが以下になるのですが、末尾行にエラーを示すログが残っておりましたがこの文が意味するところをご教授いただけませんでしょうか？

`socket.gaierror: [Errno -2] Name or service not known`

以上、よろしくお願いいたします。


CC BY-SA 3.0
2017-06-12T10:04:55.097
35507
2017-06-15T12:15:30.933
2017-06-15T08:53:45.727
23738
23738
question
python linux raspberry-pi python3 cron
cronで@rebootが動作しません。


cron実行時にエラーなどあると、root にメールが届いている可能性があります。

通常メールは `/var/spool/mail/root` ファイルに保存されます。  
もしファイルがあれば less などで内容確認してください。  
cron実行時のエラーが出力されていれば それがヒントになります。


CC BY-SA 3.0
2017-06-12T10:56:12.113
35508
2017-06-12T10:56:12.113
5008
35507
answer


cron の log を見ると、`@reboot` は機能しているようです。

まずは take88 さんの回答を支持しますが、もしそのファイルがなければ以下を試してみると良いと思います。

  * 末尾の「`;`」を削除してみる

この「`;`」が害になるとは思っていませんが、一応。  
これでダメなら、

  * `@reboot /usr/bin/python3 /home/pi/Desktop/seminar/room-pub.py > /tmp/room-pub.log 2>&1` に変更してみる

メールが届かないのであれば、このように標準出力と標準エラー出力をファイルに出力してみるのが良いでしょう。  
これで `/tmp/room-pub.log` が作成されていれば、この中に何らかのエラーが出力されていると思います。

* * *

コメントに対して回答です。

`Name or service not known` は、ホスト名が解決できない時によく見ます。  
おそらく、room-pub.py 内でネットワークを使った何らかの処理をしているが、再起動直後でまだネットワークの準備ができておらず、DNS
に問い合わせられない、といったところではないでしょうか?


CC BY-SA 3.0
2017-06-12T13:21:51.427
35510
2017-06-15T12:15:30.933
2020-06-17T08:14:45.997
-1
5288
35507
answer