Как запускать bash-скрипт дольше, чем длится видео?

Как запускать bash-скрипт столько же, сколько длится видео?

Я настроил cron на запуск bash-скрипта в 7 вечера, и я хочу, чтобы он работал столько же, сколько длится видео. Как это сделать?

Пример: в 7 вечера bash-скрипт запускает файл movie.avi, который длится 3 минуты. Bash-скрипт продолжает работать в течение 3 минут, затем выключается.

0
08.11.2016, 17:23
3 ответа

Если вы хотите, чтобы ваш сценарий bash воспроизводил видео и завершал работу, когда видео заканчивается, вы можете использовать параметр vlc - play-and-exit следующим образом:

#! /bin/bash
vlc --play-and-exit /path/to/video.mpg

Таким образом, vlc будет автоматически выйти, когда видео остановится в конце.

0
28.01.2020, 02:47

Не знаю, как вы вызываете программное обеспечение для работы с видео из сценария, но до тех пор, пока программное обеспечение закрывается после завершения фильма, вы можете просто используйте подождите :

#!/bin/bash

/video/software &
$PID=$!

wait $PID
echo "Movie complete!"
0
28.01.2020, 02:47

Вы можете использовать wait .

Из справочной страницы Linux:

wait, waitpid, waitid - ждать, пока процесс изменит состояние

Все эти системные вызовы используются для ожидания изменений состояния в дочернем элементе { {1}} вызывающего процесса и получить информацию о дочернем элементе, состояние которого изменилось. Изменением состояния считается: дочерний термин - nated; ребенка остановил сигнал; или дочерний процесс был возобновлен сигналом . В случае завершенного дочернего элемента выполнение ожидания позволяет системе освободить ресурсы, связанные с дочерним элементом; если ожидание не выполняется, то завершенный дочерний элемент остается в состоянии "зомби".

В качестве примера:

#!/bin/bash

/usr/bin/vlc --vlc_args &
wait 
echo "VLC has finished."
poweroff # you said: "then shuts down" 
1
28.01.2020, 02:47

Теги

Похожие вопросы