/ / Python: come posso leggere e leggere in modo che altri lettori possano leggerlo per ulteriori ricerche? - java, python, linux, bash

Python - come posso leggere e leggere in modo che altri lettori possano leggerlo per ulteriori ricerche? - java, python, linux, bash

Devo eseguire l'applicazione Java e leggere il syslog per attivare altri eventi basati su Python.

Allo stesso tempo devo anche scaricarlo e memorizzarlo in /var/tmp/log.log di tutti gli output java, ma poiché il nuovo controller di eventi Python viene aggiunto /var/tmp/log.log non ero in grado di creare. Qualche idea su come posso farcela? . Ad esempio: java | python >> java registra come >> log.log per tail -f

PRIMA: (lavorato)

$ java -cp /var/tmp/Audio.jar Main.Boot >> /var/tmp/log.log &
$ tail -f /var/tmp/log.log

DOPO: (non funziona)

$ java -cp /var/tmp/Audio.jar Main.Boot | python -u /var/tmp/consumer.py &
$ tail -f ????? how can i have the java syslog still dumped as like my BEFORE ????

/var/tmp/consumer.py

import sys, time, os
while True:
line = sys.stdin.readline()
if line:
sys.stdout.flush()
if "wall:on" in line:
os.system("/var/tmp/me.sh")
else:
time.sleep(1)

/var/tmp/me.sh

#!/bin/bash
export DISPLAY=:0.0
ps aux | grep "/var/tmp/pp.py" | awk "{print $2}" | xargs kill -9;
# System maintain..
python /var/tmp/pp.py &
sleep 3
ps aux | grep "/var/tmp/pp.py" | awk "{print $2}" | xargs kill -9;

risposte:

2 per risposta № 1

Fuori dalla mia testa:

$ java -cp /var/tmp/Audio.jar Main.Boot | tee /var/tmp/log.log | python -u /var/tmp/consumer.py &
$ tail -f /var/tmp/log.log

Vorrei anche fare le cose awk / grep all'interno di python invece di passare attraverso un sottoprocesso.