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


За новостями русскоязычного сообщества и Ubuntu в целом можно следить на нашей страничке в Google+

Автор Тема: Запись iptv по расписанию  (Прочитано 371 раз)

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

Оффлайн xupypr

  • Автор темы
  • Новичок
  • *
  • Сообщений: 10
    • Просмотр профиля
Запись iptv по расписанию
« : 03 Февраль 2017, 21:06:44 »
есть ubuntu  сервер
на нем установлен vlc
мне нужно записывать iptv по расписанию

создал файлик с командой записи (при ручном запуске начинается запись)
вот такого содержания:

#!/bin/bash
cvlc -vvv http://iptv.com/playlist.m3u8 --sout file/home/iptv/ts:boks.ts

мне нужно
запускать его каждый день в 5 утра
убивать именно этот скрипт в 7 утра каждый день

файл который создается просто будет перезаписываться каждый день
 как это сделать?
при запуске такого скрипта в системе создается процесс vlc
также таких скриптов будет запущено несколько одновременно то есть будет одновременно записываться несколько тв программ
и в разное время нужно прекратить запись какой то конкретной программы но что бы другая продолжала работать

Оффлайн renzrv

  • Активист
  • *
  • Сообщений: 640
    • Просмотр профиля
Re: Запись iptv по расписанию
« Ответ #1 : 05 Февраль 2017, 00:07:24 »
как это сделать?
Прописать в сron.

Оффлайн xupypr

  • Автор темы
  • Новичок
  • *
  • Сообщений: 10
    • Просмотр профиля
Re: Запись iptv по расписанию
« Ответ #2 : 11 Февраль 2017, 19:35:25 »
Я понимаю что cron
я не понимаю какой командой прибить конкретную задачу
пид будет все время разный
а имя процесса у всех будет vlc

Оффлайн Peter_I

  • Старожил
  • *
  • Сообщений: 1298
    • Просмотр профиля
Re: Запись iptv по расписанию
« Ответ #3 : 11 Февраль 2017, 21:07:10 »
Если vlc будет в одном экземпляре, то
kill `pidof vlc`
Пётр.

Оффлайн renzrv

  • Активист
  • *
  • Сообщений: 640
    • Просмотр профиля
Re: Запись iptv по расписанию
« Ответ #4 : 12 Февраль 2017, 22:05:51 »
также таких скриптов будет запущено несколько одновременно то есть будет одновременно записываться несколько тв программ
и в разное время нужно прекратить запись какой то конкретной программы но что бы другая продолжала работать
Такое можно сделать сохряняя пиды процессов vlc в разных файлах c именами каналов.
Например:
#!/bin/bash
cvlc -vvv http://iptv.com/playlist.m3u8 --sout file/home/iptv/ts:boks.ts &
sleep 1
echo $! > /pids_files_dir/channel_name

pids_files_dir - папка с файлами пидов процессов vlc
channel_name - имя тв программы

Убить процесс vlc для тв программы:
kill $(cat /pids_files_dir/channel_name)
Или же можно парсить вывод ps процессов vlc, и их опции.
« Последнее редактирование: 12 Февраль 2017, 22:53:03 от renzrv »

Оффлайн xupypr

  • Автор темы
  • Новичок
  • *
  • Сообщений: 10
    • Просмотр профиля
Re: Запись iptv по расписанию
« Ответ #5 : 13 Март 2017, 09:40:47 »
kill $(cat /pids_files_dir/channel_name)

kill: usage: kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l [sigspec]

Как правильно прописать удаление?

Оффлайн renzrv

  • Активист
  • *
  • Сообщений: 640
    • Просмотр профиля
Re: Запись iptv по расписанию
« Ответ #6 : 14 Март 2017, 19:22:55 »
xupypr,
Можно обойтись вообще без скриптов и файлов:
Запуск процесса в фон:
cvlc -vvv http://iptv.com/playlist.m3u8 --sout file/home/iptv/ts:boks.ts &
Убить процесс cvlc с опцией --sout и ее аргументом "file/home/iptv/ts:boks.ts":
kill $(ps -C cvlc -o pid,command | grep '--sout file/home/iptv/ts:boks.ts' | awk '{print $1}')

Оффлайн peregrine

  • FSM
  • СуперМодератор
  • Старожил
  • *
  • Сообщений: 6828
  • Gentoo x64 Ubuntu 16.04.1 x64
    • Просмотр профиля
Re: Запись iptv по расписанию
« Ответ #7 : 14 Март 2017, 19:24:36 »
Peter_I, лучше не через ``, а через $(). Не стоит учить людей плохим привычкам. Я потом долго отвыкал.

Оффлайн Peter_I

  • Старожил
  • *
  • Сообщений: 1298
    • Просмотр профиля
Re: Запись iptv по расписанию
« Ответ #8 : 14 Март 2017, 21:49:15 »
Peter_I, лучше не через ``, а через $(). Не стоит учить людей плохим привычкам. Я потом долго отвыкал.
Если выражения простое, с одной парой ``, то проще так, а в сложных уже по необходимости надо через $().
Но я избегаю сложных конструкций.
Пётр.

 

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