Como executar o script bash enquanto a duração do vídeo?

0

Como executar o script bash com a duração do vídeo?

Eu configurarei um cron para iniciar o script bash às 7 da noite, e quero mantê-lo funcionando por tanto tempo quanto a duração do vídeo. Como fazer isso?

Exemplo: os scripts bash do 7PM iniciam o movie.avi, ou seja, 3 minutos de duração. O script Bash continua rodando por 3 minutos e depois desliga.

    
por user199265 08.11.2016 / 16:23

3 respostas

1

Você pode usar wait .

Da página de manual do linux:

wait, waitpid, waitid - wait for process to change state

All of these system calls are used to wait for state changes in a child of the calling process, and obtain information about the child whose state has changed. A state change is considered to be: the child termi‐ nated; the child was stopped by a signal; or the child was resumed by a signal. In the case of a terminated child, performing a wait allows the system to release the resources associated with the child; if a wait is not performed, then the terminated child remains in a "zombie" state.

Como exemplo:

#!/bin/bash

/usr/bin/vlc --vlc_args &
wait 
echo "VLC has finished."
poweroff # you said: "then shuts down" 
    
por 08.11.2016 / 16:39
0

Se você quiser que seu script basque reproduza o vídeo e saia quando o vídeo terminar, você pode usar a opção vlc --play-and-exit assim:

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

Desta forma, a vlc sairá automaticamente quando o vídeo parar no final.

    
por 08.11.2016 / 16:38
0

Não tenho certeza de como você está chamando o software de vídeo do script, mas enquanto o software for fechado após a conclusão do filme, você poderá usar apenas wait :

#!/bin/bash

/video/software &
$PID=$!

wait $PID
echo "Movie complete!"
    
por 08.11.2016 / 16:43