Форум русскоязычного сообщества Ubuntu


Следите за новостями русскоязычного сообщества Ubuntu в Twitter-ленте @ubuntu_ru_loco

Автор Тема: Автоматический запуск приложения  (Прочитано 2129 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн egorushka666

  • Автор темы
  • Новичок
  • *
  • Сообщений: 11
    • Просмотр профиля
Автоматический запуск приложения
« : 11 Октября 2011, 11:46:15 »
Добрый день Всем!!! У меня возникла проблемка следующего рода: вещаю 2 телевизионных канала в локальной сети с помощью VLC. Но время от времени сервер не справляется с обработкой кодирования и закрывает приложения. Когда я это замечаю, то запускаю по новой, но я не всегда могу это заметить, пока мне начальство не тыкнет пальцем на неработающее в данную минуту телевидение. возник вопрос, как можно сделать так, чтобы прводилась автоматическая проверка работает ли проигрыватель в данную минуту и если приложение закрыто, то автоматически запускалось само.. нужно написать скрипт проверки запущенности приложения... помогите чем сможите...заранее спасибо!!!

Оффлайн graddata

  • PreSale
  • Администратор
  • Старожил
  • *
  • Сообщений: 1841
  • BIGCloud
    • Просмотр профиля
Re: Автоматический запуск приложения
« Ответ #1 : 11 Октября 2011, 11:52:19 »
может решит частично проблему
https://forum.ubuntu.ru/index.php?topic=155716.0

Пользователь решил продолжить мысль 11 Октября 2011, 11:53:39:
https://forum.ubuntu.ru/index.php?topic=167490.0

Оффлайн cortes_

  • Любитель
  • *
  • Сообщений: 59
    • Просмотр профиля
God is real, unless declared as integer.

Оффлайн egorushka666

  • Автор темы
  • Новичок
  • *
  • Сообщений: 11
    • Просмотр профиля
Re: Автоматический запуск приложения
« Ответ #3 : 11 Октября 2011, 12:37:11 »
#! /bin/bash

vlc &

while 1>0
do
ps -A | grep vlc > /dev/null
if [ $? = "1" ]
then vlc &
fi
sleep 5
done

примерно вот так должен выглядеть скрипт?

Оффлайн cortes_

  • Любитель
  • *
  • Сообщений: 59
    • Просмотр профиля
Re: Автоматический запуск приложения
« Ответ #4 : 11 Октября 2011, 14:26:34 »
чисто теоретически - да. проверь в боевых условиях, тогда и узнаешь
God is real, unless declared as integer.

Оффлайн alexander.pronin

  • Старожил
  • *
  • Сообщений: 2539
    • Просмотр профиля
Re: Автоматический запуск приложения
« Ответ #5 : 11 Октября 2011, 17:24:26 »
В
ps -A | grep vlc > /dev/null
я бы добавил исключение самого grep
ps -A | grep -v grep | grep vlc > /dev/null
« Последнее редактирование: 11 Октября 2011, 17:26:28 от alexander.pronin »

Оффлайн egorushka666

  • Автор темы
  • Новичок
  • *
  • Сообщений: 11
    • Просмотр профиля
Re: Автоматический запуск приложения
« Ответ #6 : 11 Октября 2011, 17:40:59 »
и что это мне даст...это исключение?

Оффлайн alexander.pronin

  • Старожил
  • *
  • Сообщений: 2539
    • Просмотр профиля
Re: Автоматический запуск приложения
« Ответ #7 : 12 Октября 2011, 08:05:36 »
grep vlc
дает доп. процесс, который Вас не интересует. Поэтому его и надо исключить из рассмотрения.

Оффлайн egorushka666

  • Автор темы
  • Новичок
  • *
  • Сообщений: 11
    • Просмотр профиля
Re: Автоматический запуск приложения
« Ответ #8 : 12 Октября 2011, 13:32:10 »
спс за советы!

Оффлайн cortes_

  • Любитель
  • *
  • Сообщений: 59
    • Просмотр профиля
Re: Автоматический запуск приложения
« Ответ #9 : 12 Октября 2011, 14:02:26 »
отпишись если получится, самого этот вопрос интересует
God is real, unless declared as integer.

Оффлайн egorushka666

  • Автор темы
  • Новичок
  • *
  • Сообщений: 11
    • Просмотр профиля
Re: Автоматический запуск приложения
« Ответ #10 : 18 Октября 2011, 11:36:33 »
получилось довольно таки хорошо, но есть одна проблемка.. VLC постоянно "сыпится".. получается что приходящий поток уже кодирован кодеком H264, но с высоким разрешением (700х500(точно не помню)), поэтому при повторном кодировании этим же кодеком, для уменьшения его разрешения дабы не положить локальную сеть, получается что VLC не выдерживает и закрывается...
в общем этот код работает прекрасно!!!

Оффлайн Yurror

  • Старожил
  • *
  • Сообщений: 1966
    • Просмотр профиля
Re: Автоматический запуск приложения
« Ответ #11 : 18 Октября 2011, 17:07:02 »
#! /bin/bash

vlc &

while 1>0
do
ps -A | grep vlc > /dev/null
if [ $? = "1" ]
then vlc &
fi
sleep 5
done

примерно вот так должен выглядеть скрипт?
плохая идея

лучше что-то типа
Код: (bash) [Выделить]
while true; do
    vlc
    sleep 1
done
вместо true можно написать проверку како-го нибудь условия. пока выполняется условие vlc будет перезапускаться.
например можно проверять файл-флаг который показывает что vlc должен быть запущен.
watchdog.sh
Код: (bash) [Выделить]
while [ -f vlc.started.flag ]; do
    vlc &
    pid=$!
    echo $pid > vlc.started.flag
    wait $pid
    sleep 1
done
start.sh
Код: (bash) [Выделить]
touch vlc.started.flag
./watchdog.sh
stop.sh
Код: (bash) [Выделить]
pid=$(cat vlc.started.flag)
rm -f vlc.started.flag
kill $pid

 

Страница сгенерирована за 0.018 секунд. Запросов: 22.