Надо было мне регулярно вызывать одну виндовую программку, которую поставил под PlayOnLinux.
Первым делом попытался это сделать через Cron. Но фиг там, не стартует.
И добрый человек graddata (респект ему!) на форуме посоветовал альтернативу: скрипт, который периодически будет вызывать программку через заданный промежуток времени:
#!/bin/sh
# Интервал (в секундах) между проверками
CHECKTIME=600while :
do
/usr/share/playonlinux/playonlinux --run "MetaTester64" %Fsleep ${CHECKTIME}
done
где вместо /usr/share... можно ставить другие команды.
У этого скрипта есть небольшой недостаток - он безусловно (ничего не уточняя) запускает указанную программу.
Чуточку его доделаем с тем, чтоб скрипт сначала проверял запущена ли программа, и запускал её только в случае отсутствия программы среди запущенных
#!/bin/bash
# Интервал (в секундах) между проверками
CHECKTIME=15while :
do
# Подсчитаем количество запущенных процессов с именем "tester64"
ret=$(pgrep -c tester64)
# если их количество равно нулю
if [ "$ret" -eq 0 ]
# то запустим программку
then
echo "не запущен"
/usr/share/playonlinux/playonlinux --run "tester64" %F
else
echo "запущен"
fi
# Пауза до следующей проверки
sleep ${CHECKTIME}
done
Впрочем, тестер иногда подвисает. И три процесса из четырёх (один - оболочка и три потока тестирования) отваливаются.
Снова подкорректируем скрипт:
#!/bin/bash
# Интервал (в секундах) между проверками
CHECKTIME=10while :
do# получим количество запущенных процессов по имени
ret=$(pgrep -c tester64)# если процесс один, то убъём его
if [ "$ret" -eq 1 ]
then
kill metatester64.ex
fi# если процессов нет, то запустим тестер
if [ "$ret" -eq 0 ]
then
/usr/share/playonlinux/playonlinux --run "tester64" %F
fi# пауза до следующей проверки
sleep ${CHECKTIME}
done
Всё, радуемся, пьём коньяк.
PS Чтоб тестер не мозолил глаза задвинем его на второй рабочий стол.