2012-04-27 4 views
0
incrontab -e 
/home/owen/file_to_be IN_ALL_EVENTS /home/owen/abc.py 

[email protected]:~$ cat abc.py 
#!/usr/bin/env python 
# -*- coding: utf-8 -*- 
p = open('file_to_test', 'a+') 
p.write("test") 
p.close() 

[email protected]:~$ ll file_to_test file_to_be 
-rw-r--r-- 1 owen owen 32 2012-04-27 17:07 file_to_be 
-rw-r--r-- 1 owen owen 60 2012-04-27 17:07 file_to_test 

[email protected]:~$ echo "a" >> file_to_be 
[email protected]:~$ ll file_to_test file_to_be 
-rw-r--r-- 1 owen owen 34 2012-04-27 17:15 file_to_be 
-rw-r--r-- 1 owen owen 60 2012-04-27 17:07 file_to_test 


[email protected]:~$ tail -n 3 /var/log/syslog 
Apr 27 17:15:01 owen1 CRON[12003]: (root) CMD (command -v debian-sa1 > /dev/null && debian-sa1 1 1) 
Apr 27 17:15:10 owen1 incrond[11574]: table for user owen changed, reloading 
Apr 27 17:15:18 owen1 incrond[11574]: (owen) CMD (/home/owen/abc.py) 

では動作しませんincronがPythonスクリプトはincron

を引き起こしてきた。しかしPythonスクリプトが期待どおりに動作しdidn`tのようです。

誰もがなぜ知っていますか?

私がabc.pyを実行すると、 "test"が正しいファイルに追加されます。

+1

これは問題の解決方法ではありません。しかし、ファイルオブジェクトを閉じることはちょうど良い習慣です。ファイルオブジェクトに対してcloseメソッドを使用できます。それとも、p: 'などでopen(" file_to_test ")を使用してpythonsを使用してください... –

+0

ありがとう、私はやったが、まだ動作しません。 – wenchiching

答えて

3

おそらく、スクリプトが動作していますが、期待通りに...スクリプトによって生成されたファイルのフルパスを入れていない、すなわちさ:

#!/usr/bin/env python 
# -*- coding: utf-8 -*- 
p = open('/tmp/file_to_test', 'a+') 
p.write("test") 
p.close() 

次にファイル「を/ tmp/file_to_test」よりご確認くださいこの問題は、スクリプトを実行するためにincronを使用する環境になる可能性があります。

+0

p = open( '/ home/owen/file_to_test'、 'a +')、それは動作します! – wenchiching

+0

ありがとう!アントニオ! – wenchiching

+0

説明のために、問題は、スクリプトがトリガされているときの現在の作業ディレクトリから来ます:http://stackoverflow.com/questions/16601386/incron-on-raspbian-not-working/16865338#16865338 –

1

あなたのスクリプトは実行可能ではないようですが、実行可能にするにはchmodを使用する必要があります(chmod + x abc.py)。

+0

私は実行可能であると確信しています。 – wenchiching

関連する問題