1

Доброго времени суток всем.  ab Появилась необходимость на компьютере с Ubuntu 16.04 проигрывать mp3-файл по расписанию.Файл необходимо запускать каждую неделю в среду,четверг,пятницу и субботу в 18:15 и в воскресенье в 17:15.
Для проверки попробовал проигрывать mp3-файл каждую минуту. Для этого через crontab добавил следующую строку:

* * * * * export DISPLAY=:0.0 && totem ~/try/notif.mp3

Файл проигрывается каждую минуту с задержкой где-то 8 секунд и после Totem остается запущенным.Через минуту открывается еще одно окно проигрывателя Totem.Как сделать так чтобы после проигрывания окно Totem закрывалось и не было таких больших задержек?Или может предложите более легкий вариант проигрывания музыкальных файлов по расписанию в Ubuntu 16.04?

2

ab Нет, всё верно. Расписание задаётся через таблицы cron. В правиле просто допишите закрытие программы
типа этого: _http://rus-linux net/MyLDP/consol/kill.html

Linux Mint 19.3 Mate Edition
Windows 7

3

Wolfenberg, изменил ссылку. На этот ресурс у нас ссылки не отрабатывают ab .

ᛈᚺ'ᚾᚷᛚᚢᛁ ᛗᚷᛚᚹ'ᚾᚨᚠᚺ ᚲᛏᚺᚢᛚᚺᚢ ᚱ'lᚷᛖᚺ ᚹᚷᚨᚺ'ᚾᚨᚷᛚ ᚠᚺᛏᚨᚷᚾ

Asus Prime B460M-K, i5-10500, Intel 630 UHD, DDR4 32 GB, SSD 500GB + HDD 2TB | Linux Mint 21.3 Cinnamon + Fedora 39 MATE (Compiz) + Windows 11 + macOS 12 Monterey

4

Это совсем не верно!
Запускать задание cron, использующее внешний X сервер -- это авантюра. Во-первых, он может быть вообще не запущен. Но даже запущенный может посторонним клиентам отказать, если включена авторизация. А приличные DE её как раз включают.
Тем более использовать графику там, где она не нужна. Тут нужен какой-нибудь mpg123 или даже aplay. Правда, тут будут свои грабли, если звуковая карта уже занята.

5

s.xbatob пишет:

Это совсем не верно!

Вы, мягко говоря, не правы. Ваши соображения верны в общем случае, но у ТС вполне конкретный случай. И X-сервер у него запущен и авторизация не требуется.
Все что ему нужно: после проигрывания мелодии дать команду:

killall totem
Путь важнее цели.

6

Проверяю:

 Консоль:
[xbatob@pink ~]$ ssh debian-9
xbatob@debian-9's password:
xbatob@debian-9:~$ export DISPLAY=:0
xbatob@debian-9:~$ xterm
Invalid MIT-MAGIC-COOKIE-1 keyxterm: Xt error: Can't open display: :0
xbatob@debian-9:~$ xterm

В первом случае было приглашение от sddm
Во втором я зашёл с тем же именем - и xterm запустился

пытаюсь запустить от другого юзера:

 Консоль:
[xbatob@pink ~]$ ssh tomas@debian-9
tomas@debian-9's password:
tomas@debian-9:~$ export DISPLAY=:0
tomas@debian-9:~$ xterm
No protocol specified
xterm: Xt error: Can't open display: :0
tomas@debian-9:~$

Ещё и диагностика неинформативная

Так что -- авантюра.

7

+1 к mpg123. Но можно и mplayer, дело вкуса. Totem в данном случае не нужен, он, кстати, львиную долю задержки вносит.

Истинный hotplug - это обычная электрическая розетка: воткнул - работает, и никаких драйверов.
Slackware64-current/Xfce/Lenovo G580

8

yars пишет:

+1 к mpg123. Но можно и mplayer, дело вкуса. Totem в данном случае не нужен, он, кстати, львиную долю задержки вносит.

Главное, что он вносит лишнюю зависимость, причем совсем не используемую.
На самом деле хотелось бы знать для чего все это надо. Если киоск — одно, сервер — другое, рабочая станция — третье.Но в любом случае однозначного решения нет.

9

Для VLC хватит и этого, будет работать в фоне.

cvlc --play-and-exit ~/try/notif.mp3 &>/dev/null &

пример взялл отсюда

It is good day to die ...
MS Windows 10
Заметки о главном...

10

i2ks пишет:

пример взялл отсюда

А мне там особенно понравился пример с play из пакета SOX

 Консоль:
play -q /path/to/file.mp3

Проще не придумаешь)))

- Пап, а вирусы под линукс есть?
- Есть, но всего 5, и их сначала нужно откомпилировать под свою систему, дать права на запуск и запустить.
Как сделать и разместить скриншот || Прежде чем создавать тему

11

Ещё можно использовать ffplay из пакета ffmpeg
Но грабли с  конкурентным доступом к аудиоустройству это не обходит. Только до них ещё добраться нужно.

12

s.xbatob пишет:

грабли с  конкурентным доступом к аудиоустройству

А какие там грабли могут быть с пульсой? (вопрос НЕ риторический bx )

- Пап, а вирусы под линукс есть?
- Есть, но всего 5, и их сначала нужно откомпилировать под свою систему, дать права на запуск и запустить.
Как сделать и разместить скриншот || Прежде чем создавать тему

13

DiabloPC пишет:

А какие там грабли могут быть с пульсой?

Грабли в том, что этот слой появился не от хорошей жизни.
драйвер же позволяет только то, что умеет устройство. А они нынче стали совсем тупыми: одно открытие, одна частота, один формат... Зато умеют разбросать звук на 8 каналов (интересно, это кроме игрушек где-то ещё используется?)
Да и вообще цифровое микширование -- вопрос совсем неоднозначный.

14

Всем спасибо за ответы!)))Помог  вариант с mplayer. В скрипте следующие:

#!/bin/bash
mplayer ~/Музыка/music.mp3

И через crontab добавил следующие:

15 18 * * 3,4,5,6 ~/try/script.sh
15 17 * * 7 ~/try/script.sh

15

Зачем скприпты, когда можно так:

15 18 * * 3,4,5,6 mplayer $HOME/Музыка/music.mp3
15 17 * * 7 mplayer  $HOME/Музыка/music.mp3

p.s. и лучше отходить от конструкции

#!/bin/bash

в сторону

#!/usr/bin/env bash
It is good day to die ...
MS Windows 10
Заметки о главном...

16

i2ks пишет:

в сторону

#!/usr/bin/env bash

...особенно в заданиях cron, у которого $PATH /usr/bin:/bin, которые нынче ещё одно и то же ab

И вообще запускать скрипт через env -- это лишний повод нарваться

17 (07.06.2019 15:04:57 отредактировано i2ks)

s.xbatob пишет:

И вообще запускать скрипт через env -- это лишний повод нарваться

нарваться на что? если бордак в системе, то  можно и космических фей и единорогов в итоге получить.

It is good day to die ...
MS Windows 10
Заметки о главном...

18

i2ks пишет:

p.s. и лучше отходить от конструкции

#!/bin/bash
в сторону

#!/usr/bin/env bash

А можно пожалуйста поподробней почему именно так следует поступать?  bw

Спросить - стыд минуты, не узнать - стыд всей жизни

19

lone_wolf пишет:

А можно пожалуйста поподробней почему именно так следует поступать? 

Со временем к этому пришел, конечно это не панацея и не таблетка от всех болезней, но во многом данный метод решает большую часть задачь. Да и в документации/справочниках и т.д., всё больше и больше можно увидить данный метод(взять например тот же python или perl). Не много информации и в чем различия, здесь посмотрите.

It is good day to die ...
MS Windows 10
Заметки о главном...