Jump to content
Cesbo Community
  • Announcements

    • RadioSintetica

      News!   12/10/17

      If you have any questions related to installation and purchase, please check our documentation https://cesbo.com/en/astra/docs/ and terms of service https://cesbo.com/en/terms/
      Also, we have an official Telegram chat: https://t.me/cesbo_en  you can ask any questions or share your experience with colleagues Если у вас возникли вопросы по установке и покупке, ознакомьтесь пожалуйста с документацией по адресу https://cesbo.com/ru/astra/docs/ и условиями использования https://cesbo.com/ru/terms/
      Так же, обращаю внимание, что у нас есть официальный Телеграмм чат: https://t.me/cesbo_ru в котором можно задать вопросы - или поделиться своим опытом с коллегами
joneg

Перезапуск потока без перезагрузки процесса

Recommended Posts

Здравствуйте

У меня запущен отдельный процесс астры, который собирает более 30 потоков с камер по RTSP и вещает их в UDP. По непонятным причинам, входящий поток иногда отваливается и сам не восстанавливается. Использовать команду reload не хочется, так как это приведет к перезапуску всех потоков и рестарту процесса в целом. Открытие настроек потока и нажатие на Apply перезапускает поток и все начинает работать

 

Аналогичная проблема у меня была, когда в новых версиях астры я попытался собрать все адаптеры в один процесс. У меня есть много карт с CI модулями, которые нужно иногда перезапускать. Использование reload так же привело к тому, что перезапускался весь процесс. От этой идеи пришлось отказаться

 

Можно ли сделать аналог действия reload, который будет перезапускать только один поток или адаптер, если этот поток использует DVB источник?

Share this post


Link to post
Share on other sites

Перезапускать потоки возможно через api, или создать по процессу на камеру с reload.

Для перезапуска адаптера, и всех связанных с адаптером каналов через api:

curl -v -d '{"cmd":"restart-adapter","id":"a001"}' http://admin:admin@127.0.0.1:33233/control

Для перезапуска канала:

curl -v -d '{"cmd":"restart-stream","id":"a00b"}' http://admin:admin@127.0.0.1:33233/control

Для мониторинга и перезапуска попробуйте в той же астре добавить резервный инпут, в котором через "exec://" по api перезапускать этот же канал, или написать отдельный скрипт с анализатором.

И уточните вашу версию астры, эти методы появились примерно осенью 2016.

Share this post


Link to post
Share on other sites

ASTRA 5.63-TEST [COMMIT:E29FC96E DATE:2017-03-19]

 

Спасибо за ваш ответ. Работать конечно будет, но хотелось бы что-то менее замороченное ) Но на самые проблемные камеры поставить можно

Share this post


Link to post
Share on other sites

Перезапускать потоки возможно через api, или создать по процессу на камеру с reload.

Для перезапуска адаптера, и всех связанных с адаптером каналов через api:

curl -v -d '{"cmd":"restart-adapter","id":"a001"}' http://admin:admin@127.0.0.1:33233/control

Для перезапуска канала:

curl -v -d '{"cmd":"restart-stream","id":"a00b"}' http://admin:admin@127.0.0.1:33233/control

Для мониторинга и перезапуска попробуйте в той же астре добавить резервный инпут, в котором через "exec://" по api перезапускать этот же канал, или написать отдельный скрипт с анализатором.

И уточните вашу версию астры, эти методы появились примерно осенью 2016.

 

На конце ваших примеров курла не хватает / после control.

 

Есть дурацкий триколор со своим exset кам-модулем. Периодически канал отваливается и уходит в scrambled. Помогает перезапуск потока или всей астры.

Хочу приделать автоматический перезапуск потока, но что-то идет не так. Астра последняя тестовая.

 

Из консоли вот так работает:

curl -d '{ "cmd" : "restart-stream", "id": "a00k" }' http://admin:admin@127.0.0.1:9009/control/

Создаю второй вход в стриме, вбиваю туда:

exec://curl -d '{ "cmd" : "restart-stream", "id": "a00k" }' http://admin:admin@127.0.0.1:9009/control/

При переключении на второй инпут астра виснет наглухо и больше не стартует. Мало того, перезапуск через monit тоже перестает работать, так как похоже еще и адаптер остаётся в состоянии "занят". После перезагрузки сервера астра по прежнему не стартует, пока руками не прибью строчку со вторым инпутом в конфиге

 

В конфиге это дело выглядит вот так:

"make_stream": [
                {
                        "type": "spts",
                        "input": [
                                "dvb://a001#pnr=15006&cam",
                                "exec://curl -d '{ \"cmd\" : \"restart-stream\", \"id\": \"a00k\" }' http://admin:admin@127.0.0.1:9009/control/"
                        ],
                        "enable": true,
                        "output": [
                                "udp://239.255.1.1"
                        ],
                        "name": "239.255.1.1",
                        "id": "a00k",
                        "backup_start_delay": "20"
                }

Создан файлик execute с содержимым:

init_input_module.exec = function(conf)
    os.execute(conf.addr)
    return transmit({})
end

kill_input_module.exec = function(module)
    --
end

Астра стартует с ним вот так:

astra -p 9009 -c /home/user/astra/astra.conf /home/user/astra/execute

1. Как сделать, чтобы корректно заработал перезапуск первого инпута? чяднт?

2. Можно ли как-то разблокировать занятый адаптер без перезагрузки системы (ubuntu)

В логах была инфа про занятый порт 9009. Пофиксил так:

sudo fuser -k 9009/tcp

Share this post


Link to post
Share on other sites

Попробуйте создать sh срипт, примрно такого содержания:

#!/bin/bash

curl -X POST -d '{"cmd":"restart-stream","id":"a00k"}' 'http://admin:admin@127.0.0.1:9009/control/' --max-time 3 &

И во второй вход через exec вызывать так:

exec:///etc/astra/reload_channel/12345.sh

И еще start delay в beckup можно указать 30 секунд. Что бы при мелкой проблеме не перезагружало, или если модуль долго определяется, что бы не ушло в постоянный рестарт.

Share this post


Link to post
Share on other sites

Через скрипт тоже не работает. Но поведение стало несколько другим. Астра теперь циклично перезапускается. В логах вот:

Jun 15 15:08:43: ERROR: [main] abort execution
Jun 15 15:08:43: ERROR: 1: /home/user/astra/execute:2 -- ? [Lua]
Jun 15 15:08:43: ERROR: 2: base:578 -- init_input [Lua]
Jun 15 15:08:43: ERROR: 3: stream:577 -- channel_init_input [Lua]
Jun 15 15:08:43: ERROR: 4: stream:420 -- <unknown> [Lua]

Jun 15 15:08:43: INFO: [main] Starting Astra v.5.63-test [commit:bdf89e24 date:2017-06-13]
Jun 15 15:08:45: ERROR: [239.255.1.1 Зоо ТВ #1] Bitrate:0Kbit/s PES:0 CC:0
Jun 15 15:08:46: INFO: [dvb_ca 9:0] CA Slots: 1
Jun 15 15:08:46: INFO: [dvb_ca 9:0] CA Descramblers: 0
Jun 15 15:08:46: INFO: [dvb_ca 9:0] Select slot 0
Jun 15 15:08:46: INFO: [239.255.1.1 Зоо ТВ #1] PAT tsid:15 version:1
Jun 15 15:08:46: INFO: [239.255.1.1 Зоо ТВ #1] PAT    PMT pid:960 pnr:15006
Jun 15 15:08:46: INFO: [239.255.1.1 Зоо ТВ #1] PAT crc32:0x20B9F920
Jun 15 15:08:46: INFO: [239.255.1.1 Зоо ТВ #1] PMT pnr:15006 version:1
Jun 15 15:08:46: INFO: [239.255.1.1 Зоо ТВ #1] PCR pid:961
Jun 15 15:08:46: INFO: [239.255.1.1 Зоо ТВ #1] VIDEO pid:961 type:0x1B
Jun 15 15:08:46: INFO: [239.255.1.1 Зоо ТВ #1] AUDIO pid:962 type:0x04
Jun 15 15:08:46: INFO: [239.255.1.1 Зоо ТВ #1] AUDIO    lang:rus
Jun 15 15:08:46: INFO: [239.255.1.1 Зоо ТВ #1] PMT crc32:0x46ADAC21
Jun 15 15:08:48: INFO: [dvb_input 9:0] fe has lock. status:SCVYL signal:79% snr:92% ber:0 unc:0
Jun 15 15:08:48: INFO: [dvb_ca 9:0] CA Slot 0: ready to go
Jun 15 15:08:48: INFO: [dvb_ca 9:0] CA Slot 0: active
Jun 15 15:08:49: INFO: [239.255.1.1 Зоо ТВ #1] SDT tsid:15 version:2
Jun 15 15:08:49: INFO: [239.255.1.1 Зоо ТВ #1] SDT pnr:15006
Jun 15 15:08:49: INFO: [239.255.1.1 Зоо ТВ #1] SDT    provider:TricolorTVSib
Jun 15 15:08:49: INFO: [239.255.1.1 Зоо ТВ #1] SDT    service:Zoo TV
Jun 15 15:08:49: INFO: [239.255.1.1 Зоо ТВ #1] SDT crc32:0x91D59342
Jun 15 15:08:50: ERROR: [dvb_input 9:0] poll() failed [Interrupted system call]
Jun 15 15:08:50: ERROR: [main] abort execution
Jun 15 15:08:50: ERROR: 1: /home/user/astra/execute:2 -- ? [Lua]
Jun 15 15:08:50: ERROR: 2: base:578 -- init_input [Lua]
Jun 15 15:08:50: ERROR: 3: stream:420 -- <unknown> [Lua]
Jun 15 15:08:50: ERROR: 4: stream:420 -- <unknown> [Lua]

Jun 15 15:08:51: INFO: [main] Starting Astra v.5.63-test [commit:bdf89e24 date:2017-06-13]

Я так понимаю, что-то не так с моим скриптом execute. Но к сожалению вывод ошибки от Lua не очень информативен. В execute копипаста отсюда . Может, там что-то еще нужно дополнить?

Share this post


Link to post
Share on other sites

Несколько топорный способ, но если доступна веб-морда, то зайти в "подвисший" стрим, снять галочку с Enabled, нажать Apply, найти выключенный стрим, вернуть как было, т.е. галочку Enabled  и вновь Apply. Таким образом можно перезапустить поток без перезапуска самого процесса астры.

Share this post


Link to post
Share on other sites

Несколько топорный способ, но если доступна веб-морда, то зайти в "подвисший" стрим, снять галочку с Enabled, нажать Apply, найти выключенный стрим, вернуть как было, т.е. галочку Enabled  и вновь Apply. Таким образом можно перезапустить поток без перезапуска самого процесса астры.

но это же ручной способ. мне нужен автоматический перезапуск потока или астры всей (один канал всего). но к сожалению, не получилось. может, что-то где-то недописал, но так как нет четкого руководства, как использовать внешние скрипты в астре5, то непонятно, что теперь делать.

Share this post


Link to post
Share on other sites

По поводу цикличного перезапуска. Если используете 5.63 версию, то там уже есть exec. Скриптов lua для этого не надо. Возможно происходит какой-то конфликт и получается циклический перезапуск. Рекомендую удалить этот lua скрипт для 5.63.

Если используете curl для перзапуска вместо отдельного скрипта с курлом, то попробуйте указать полный путь для него. Возможно из-за этого повисает астра. т.е.:

exec:///usr/bin/curl .....

Share this post


Link to post
Share on other sites

в настройках адаптера ?

у меня в Astra 5.62-rc9 тоже есть, при применении адаптер заново реинициализируется?

 

оффтоп : скачать 5.63-test по ссылке не могу

HTTP request sent, awaiting response... 404 Not Found
2017-07-01 09:42:12 ERROR 404: Not Found.

Share this post


Link to post
Share on other sites

для moi pro amd - что-то не так. не запускается

# wget http://dev.cesbo.com/download/astra/5.63/arm/tbs-moi-pro/astra
--2017-07-04 16:23:24--  http://dev.cesbo.com/download/astra/5.63/arm/tbs-moi-pro/astra
Распознаётся dev.cesbo.com (dev.cesbo.com)... 178.62.214.65
Подключение к dev.cesbo.com (dev.cesbo.com)|178.62.214.65|:80... соединение установлено.
HTTP-запрос отправлен. Ожидание ответа... 200 OK
Длина: 457148 (446K) [application/octet-stream]
Сохранение в: «astra»

100%[==============================================================================================>] 457 148      676KB/s   за 0,7s

2017-07-04 16:23:25 (676 KB/s) - «astra» сохранён [457148/457148]

# ./astra -v
bash: ./astra: не могу запустить бинарный файл


скачал через https://new.cesbo.com/ru/astra/quick-start/

запустил, но также 2-3 канала висят и не приходят в нормальное состояние

post-35-0-40749400-1499176329_thumb.png

Share this post


Link to post
Share on other sites

если кому потребуется : есть доп опция restart_dvb, комментарий Андрея

Quote

опция restar_dvb, её надо добавить в один из источников, если он отваливается, тогда будет перезапущен адаптер и все каналы: dvb://a001#pnr=100&restart_dvb=5 (5 секунд подождёт и перезапустит)

 

Share this post


Link to post
Share on other sites
3 hours ago, Mechanik said:

если кому потребуется : есть доп опция restart_dvb, комментарий Андрея

 

такой инпут может быть единственным? у меня при добавлении такой опции канал адаптер рестартует циклично каждые N секунд, в моем случае 30, даже если канал уже зеленый.

Share this post


Link to post
Share on other sites

я не могу ответить на Ваш вопрос, у меня input прописан на карту+CI, которые периодически виснут.

Прописал, будем наблюдать, ибо запарило постоянно ребутить канал.

Share this post


Link to post
Share on other sites
On 05.11.2017 at 5:06 PM, Mechanik said:

я не могу ответить на Ваш вопрос, у меня input прописан на карту+CI, которые периодически виснут.

Прописал, будем наблюдать, ибо запарило постоянно ребутить канал.

та же самая комбинация. tbs 6910+триколор. периодически нужен ребут адаптера, так как канал перестает декодироваться. к сожалению, работает не так, как нужно. у меня последняя сборка 5.64. пробовал сделать первый инпут обычный, а второй с этой опцией, один фиг цикличный ребут адаптера. время ставил и 5, и 60 секунд.

Share this post


Link to post
Share on other sites

прописал опцию 15сек, после ребута сервера карты сами не поднялись, пока на каждом адаптере не сделал restart

увеличил до 60 сек, посмотрим как будут себя вести, одновременно попробовал прописать задержку на инициализацию cam в опциях адаптера, поставил 5 сек

но получилось - cam не инициализируется, а адаптер ребутится через 60сек и так по кругу, откатился назад с default =3s

 

Share this post


Link to post
Share on other sites
On 05.11.2017 at 10:43 AM, Mechanik said:

если кому потребуется : есть доп опция restart_dvb, комментарий Андрея

 

есть стандартная функция, что бы перезапускать определенный канал с DVB через определенный промежуток времени?

Share this post


Link to post
Share on other sites
10 hours ago, abel said:

есть стандартная функция, что бы перезапускать определенный канал с DVB через определенный промежуток времени?

в кроне по api кто мешает дергать канал?

Share this post


Link to post
Share on other sites

в кроне умею только карточку дёргать) 

а мне хотелось бы стандартными средствами через определенное время после старта адаптера.

Share this post


Link to post
Share on other sites

и не умею я по api ....

нет тямы для этого .... надо что бы кто то объяснил от куда что брать)

Share this post


Link to post
Share on other sites

кто нибудь, научите как перезапускать определенный канал без перезапуска процесса астра, с консоли, ПЛЗ??

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now


×