システムの起動時や終了時など、ファイルを永遠に読み取らなければなりません。ファイル イベントに基づいて、Python スクリプトはアクションを実行する必要があります。しかし、私のpythonスクリプトがそうしていないのは不思議です。
ステップ1:crontabと起動時に、次のようになります
tail -f /var/tmp/event.log | python /var/tmp/event.py &
ステップ 2: 他のアプリケーションがファイル /var/tmp/event.log に行をダンプしています。たとえば、
java -cp Java.jar Main.main | tee -a /var/tmp/event.log
or
echo "tst" >> /var/tmp/event.log
or
otherapps | tee -a /var/tmp/event.log
ステップ 3: python event.py はコマンドをリッスンして実行するループを持っていますが、それらの実行は行われていません
import sys, time, os
while True:
line = sys.stdin.readline()
if line:
if "runme.sh" in line:
os.system("/var/tmp/runme.sh")
if "killfirefox.sh" in line:
os.system("/var/tmp/killfirefox.sh")
if "shotemail.sh" in line:
os.system("/var/tmp/shotemail.sh")
if "scan.sh" in line:
os.system("/var/tmp/scan.sh")
if "screenshot.sh" in line:
os.system("/var/tmp/screenshot.sh")
else:
time.sleep(1)
私が間違っていることは何ですか?event.log ファイルが行ごとに正しいコマンドを持っていることを確認しましたが、手動echo "runme.sh" | python /var/tmp/event.py
でも機能しますが、起動時/crontab モードを使用しているときに機能しないのはなぜですか?