Приобрел remote control, но lirc не работает с IR датчиком. USB модель IR507. Поэтому сделал на perl скрипт который обрабатывает соотвествующие event-файл, все работает хорошо! Захотелось автоматизировать запуск скрипта при старте mplayer, xmms, amarok. На perl не разкурил как правильно при помощи системного: ps aux | grep ... считать данные в скрипт, поэтому на bash сделал следующий скрипт. Сообственно вопрос: нормально ли если скрипт работае в цикл накручивая PID через sleep. Моет есть лучшее решение? Спасибо!
#! /bin/sh
pid_mplayer=0 pid_xmms=0 pid_amarok=0
while true do sleep 3
if ps aux | grep "mplayer" | grep -v "grep" | grep -q -v "plirc.pl" then if [[ "$pid_mplayer" -eq 0 ]] then # rxvt -geometry 70x17+0+0 -e plirc.pl mode=mplayer & plirc.pl mode=mplayer > /dev/null & pid_mplayer=$! fi if [[ "$pid_mplayer" -ne 0 ]] then continue fi else if [[ "$pid_mplayer" -ne 0 ]] then kill $pid_mplayer pid_mplayer=0 fi fi
if ps aux | grep "xmms" | grep -v "grep" | grep -q -v "plirc.pl" then if [[ "$pid_xmms" -eq 0 ]] then # rxvt -geometry 70x17+0+0 -e plirc.pl xmms & plirc.pl mode=xmms > /dev/null & pid_xmms=$! fi if [[ "$pid_xmms" -ne 0 ]] then continue fi else if [[ "$pid_xmms" -ne 0 ]] then kill $pid_xmms pid_xmms=0 fi fi
if ps aux | grep "amarokapp" | grep -v "grep" | grep -q -v "plirc.pl" then if [[ "$pid_amarok" -eq 0 ]] then # rxvt -geometry 70x17+0+0 -e plirc.pl amarok & plirc.pl mode=amarok > /dev/null & pid_amarok=$! fi if [[ "$pid_amarok" -ne 0 ]] then continue fi else if [[ "$pid_amarok" -ne 0 ]] then kill $pid_amarok pid_amarok=0 fi fi
done