O comando timeout
é construído precisamente para isso. Para executar o comando cvlc
por 1 minuto:
timeout 1m cvlc-command
O período de tempo pode usar as strings d para dias, h para horas, m para minutos es para segundos. Se nenhuma letra de medição de tempo for dada, o padrão é segundos.
Uma opção útil é --preserve-status
, o que fará com que o comando de tempo limite saia com o código de status do comando controlado, mesmo que seja eliminado. Se esta opção não for usada, o código de status será o do comando controlado se nenhum tempo limite ocorrer, ou 124 se o comando expirar.
Outra opção útil se você precisa ter certeza de que o serviço parou é usar --kill-after=<time>
, que enviará outro sinal de kill ao comando se o comando não tiver parado pelo novo limite definido pelo tempo