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


Получить помощь и пообщаться с другими пользователями Ubuntu можно
на irc канале #ubuntu-ru в сети Freenode
и в Jabber конференции ubuntu@conference.jabber.ru

Автор Тема: Как добавить скрипт в авто запуск в Ubuntu Server 14.04  (Прочитано 917 раз)

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

Оффлайн miarle

  • Автор темы
  • Участник
  • *
  • Сообщений: 205
  • Ubuntu 18.04 + i3 window manager
    • Просмотр профиля
Вобщем суть проблемы такова, нужно запустить при старте системы разбиение цельного потока на небольшие фрагменты через ffmpeg. Проще говоря принимаю каналы с антенны нарезаю через ffmpeg и транслирую в http. 11 потоков нужно каждый отдельно  при старте чтоб нарезался.
Написал такой скрипт для каждого канала и поместил в /etc/init.d/
(Нажмите, чтобы показать/скрыть)
в 16.04 скрипт работал, но с 14.04 проблемы.

Сильно не пинайте, мог не правильно что то написать.
CPU: 8 core AMD FX-8300 Eight-Core
RAM: Kingston DDR3-1600 8192MB PC3-12800
GPU: NVIDIA GP107 [GeForce GTX 1050]

Оффлайн ALiEN175

  • Модератор форума
  • Старожил
  • *
  • Сообщений: 4309
  • Capture the truth
    • Просмотр профиля
В чем проблема-то? Не запускается?
Для 16.04 и более новых - cоздавайте сервис systemd (вообще странно, что сработало из init.d).
Для 14.04 - из init.d такой скрипт и не заработает
« Последнее редактирование: 09 Апрель 2017, 23:33:59 от ALiEN175 »
ASUS P5K-C :: Intel Xeon E5450 :: 8 GB RAM :: Nvidia 8500GT :: XFCE
SAMSUNG N150 :: Intel Atom N450 :: 2 GB RAM :: Intel GMA3150 :: XFCE

Оффлайн Morisson

  • СуперМодератор
  • Старожил
  • *
  • Сообщений: 4588
    • Просмотр профиля
поместил в /etc/init.d/
а дальше что?
в 16.04 скрипт работал
О_О таки в init.d?
Это, если init
Особенно прочти часть, где про запуск скриптов при включении/выключении, update-rc.d.

Пользователь добавил сообщение 09 Апрель 2017, 23:37:35:
Это для 14.04
Для 16.04 нужны юниты systemd
« Последнее редактирование: 09 Апрель 2017, 23:37:35 от Morisson »

Оффлайн miarle

  • Автор темы
  • Участник
  • *
  • Сообщений: 205
  • Ubuntu 18.04 + i3 window manager
    • Просмотр профиля
Morisson, т.е тут так же достаточно прописать путь к каждому скрипту в rc.local?
CPU: 8 core AMD FX-8300 Eight-Core
RAM: Kingston DDR3-1600 8192MB PC3-12800
GPU: NVIDIA GP107 [GeForce GTX 1050]

Оффлайн Morisson

  • СуперМодератор
  • Старожил
  • *
  • Сообщений: 4588
    • Просмотр профиля
artem.mikhaylov, так-то да. Но этот скрипт будет выполняться от суперпользователя. Если ничего- тогда так легче)

Пользователь добавил сообщение 10 Апрель 2017, 00:02:14:
update-rc.d
кошернее)

Оффлайн ReNzRv

  • Старожил
  • *
  • Сообщений: 2628
    • Просмотр профиля
Написал такой скрипт для каждого канала и поместил в /etc/init.d/
Почему не в одном скрипте? (запускать нужно в фоне)

Оффлайн miarle

  • Автор темы
  • Участник
  • *
  • Сообщений: 205
  • Ubuntu 18.04 + i3 window manager
    • Просмотр профиля
renzrv, к сожалению уровень моих познаний на начальном уровне.
т.е я так понял можно создать файл myscript написать там команды для каждого канала и прописать путь к этому скрипту в rc.local и всё будет работать?
CPU: 8 core AMD FX-8300 Eight-Core
RAM: Kingston DDR3-1600 8192MB PC3-12800
GPU: NVIDIA GP107 [GeForce GTX 1050]

Оффлайн Morisson

  • СуперМодератор
  • Старожил
  • *
  • Сообщений: 4588
    • Просмотр профиля
artem.mikhaylov, да.
Можно сделать в одном скрипте, через & команды
Комп мощный? Проц сильно напрягается?

Пользователь добавил сообщение 10 Апрель 2017, 00:19:33:
(Нажмите, чтобы показать/скрыть)
& это выполнение вместе, сразу, && - один за другим, т.е. пока первый не нарежется, следующий не начнется
« Последнее редактирование: 10 Апрель 2017, 00:19:33 от Morisson »

Оффлайн miarle

  • Автор темы
  • Участник
  • *
  • Сообщений: 205
  • Ubuntu 18.04 + i3 window manager
    • Просмотр профиля
Morisson, 6 ядер 8 гб оперативки.
сейчас на 13% нагружен с запущенными каналами
CPU: 8 core AMD FX-8300 Eight-Core
RAM: Kingston DDR3-1600 8192MB PC3-12800
GPU: NVIDIA GP107 [GeForce GTX 1050]

Оффлайн ReNzRv

  • Старожил
  • *
  • Сообщений: 2628
    • Просмотр профиля
artem.mikhaylov,
Чем отличаются команды для каналов?
Приведи для примера команды первых трех каналов.
Запуск всех каналов можно сделать одной командой в цикле.

Оффлайн Morisson

  • СуперМодератор
  • Старожил
  • *
  • Сообщений: 4588
    • Просмотр профиля
artem.mikhaylov, не, при нарезке загрузка?

Пользователь добавил сообщение 10 Апрель 2017, 00:27:21:
Или у тебя постоянно режется?

Оффлайн miarle

  • Автор темы
  • Участник
  • *
  • Сообщений: 205
  • Ubuntu 18.04 + i3 window manager
    • Просмотр профиля
renzrv, отличаются только портом т.е меняется 127.0.0.1:5551 127.0.0.1:5565 127.0.0.1:5754 ну и соответственно названием канала

Пользователь добавил сообщение 10 Апрель 2017, 00:29:48:
Morisson, постоянно режется, нужно запустить скрипт в фоне, чтоб ffmpeg постоянно резал
CPU: 8 core AMD FX-8300 Eight-Core
RAM: Kingston DDR3-1600 8192MB PC3-12800
GPU: NVIDIA GP107 [GeForce GTX 1050]

Оффлайн miarle

  • Автор темы
  • Участник
  • *
  • Сообщений: 205
  • Ubuntu 18.04 + i3 window manager
    • Просмотр профиля
renzrv, /usr/html/stb/stb.ts и это /usr/html/stb/stb.m3u8 у каждого канала своё

Пользователь добавил сообщение 10 Апрель 2017, 00:48:05:
renzrv, и здесь /stb?fifo_size=256000 вместо stb другое имя канала
т.е стб это имя канала
CPU: 8 core AMD FX-8300 Eight-Core
RAM: Kingston DDR3-1600 8192MB PC3-12800
GPU: NVIDIA GP107 [GeForce GTX 1050]

Оффлайн ReNzRv

  • Старожил
  • *
  • Сообщений: 2628
    • Просмотр профиля
#!/bin/bash

# Здесь список: порт имя_канала
echo "
5551 name1
5565 name2
5754 name3
" | \
while read l
do
[ "$l" ] || continue
port=${l% *}
name=${l#* }
ffmpeg -i udp://127.0.0.1:${port}/${name}/stb?fifo_size=256000 \
               -vcodec copy \
               -acodec libfdk_aac \
               -use_localtime 1 \
               -hls_segment_filename /usr/html/${name}/${name}.ts \
               -hls_flags delete_segments \
               -hls_time 3  /usr/html/${name}/${name}.m3u8 &
sleep 0.1
done
« Последнее редактирование: 10 Апрель 2017, 01:28:13 от renzrv »

Оффлайн miarle

  • Автор темы
  • Участник
  • *
  • Сообщений: 205
  • Ubuntu 18.04 + i3 window manager
    • Просмотр профиля
renzrv, получается сам скрипт нарезает цельный поток на небольшие фрагменты которые написаны в плейлисте.
в /usr/html/ лежат папки с именами каналов /stb /nlo /tet в этих папках файлы stb.ts это фрагменты их много они постоянно должны нарезаться, и stb.m3u8 это плейлист.  Это stb.ts и это stb.m3u8 у каждого канала разное.

Пользователь добавил сообщение 10 Апрель 2017, 01:10:26:
ALiEN175, Скрипт работает, но один.
Остальные не хотят запускаться.

Пользователь добавил сообщение 10 Апрель 2017, 01:12:32:
renzrv, разные файлы это не проблема, можно так сказать, проблема в том что один скрипт стартует в другие нет.
может нужно ffmpeg в фоне запускать скрипте?
« Последнее редактирование: 10 Апрель 2017, 01:12:32 от artem.mikhaylov »
CPU: 8 core AMD FX-8300 Eight-Core
RAM: Kingston DDR3-1600 8192MB PC3-12800
GPU: NVIDIA GP107 [GeForce GTX 1050]

 

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