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 № 1Fuori 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.