Autor Tópico: Script para rodar em background  (Lida 4234 vezes)

Offline JarbasAugusto

  • Usuário Ubuntu
  • *
  • Mensagens: 50
    • Ver perfil
Script para rodar em background
« Online: 17 de Setembro de 2007, 15:18 »
Seguinte,

Estou montando um sistema de vigilância para minha graduação que utiliza o programa MPEG4IP (mp4live) para captura, codificação e alocação dos arquivos no servidor de streaming (Darwin Streaming Server).

o Problema é o seguinte, gostaria que o mpeg4ip rodasse automaticamente(com seus devidos parametros), e em um tempo determinado (de 30 em 30 minutos) ele fechasse e seria executado novamente. Ficando nesse loop indefinidamente.
É possível que aconteça?


arlei

  • Visitante
Re: Script para rodar em background
« Resposta #1 Online: 17 de Setembro de 2007, 20:35 »
Olá JarbasAugusto,

você pode programar ele para rodar sempre que precisar usando a Cron. Faça uma pesquisa aqui mesmo no fórum que encontrará outros tópicos sobre o assunto.

T+
Arlei

Offline _Luks

  • Usuário Ubuntu
  • *
  • Mensagens: 202
  • Debian Lenny
    • Ver perfil
    • Meu Blog
Re: Script para rodar em background
« Resposta #2 Online: 18 de Setembro de 2007, 01:08 »
nem precisa usar o cron, basta um simples shellscript...

Código: [Selecionar]
#!/bin/sh
loop="enabled"
while [ $loop = "enabled" ]; do
mpeg4ip& #pra rodar em 2 plano
sleep 1800 #30min
killall mpeg4ip  #fecha o programa
done

Offline JarbasAugusto

  • Usuário Ubuntu
  • *
  • Mensagens: 50
    • Ver perfil
Re: Script para rodar em background
« Resposta #3 Online: 18 de Setembro de 2007, 17:13 »
obrigado pela ajuda...

só uma coisa.. toda vez antes de reiniciar o programa mpeg4ip tenho que alterar alguns parametros no seu arquivo de configuração mpeg4ip.h.

tem como fazer isso também?

mais complexo é que preciso mandar parametros de data e hora(atuais) para um campo do arquivo de configuração do mpeg4ip.


e onde posso encontrar material para fazer esses scripts, documentação para aprender mesmo.

abraços e já ajudaram bastante!

arlei

  • Visitante
Re: Script para rodar em background
« Resposta #4 Online: 18 de Setembro de 2007, 17:24 »
obrigado pela ajuda...

só uma coisa.. toda vez antes de reiniciar o programa mpeg4ip tenho que alterar alguns parametros no seu arquivo de configuração mpeg4ip.h.

tem como fazer isso também?

mais complexo é que preciso mandar parametros de data e hora(atuais) para um campo do arquivo de configuração do mpeg4ip.


e onde posso encontrar material para fazer esses scripts, documentação para aprender mesmo.

abraços e já ajudaram bastante!

Sugiro o site do Aurélio. O cara é fera em shell script.

http://aurelio.net/shell/

T+
Arlei

Offline JarbasAugusto

  • Usuário Ubuntu
  • *
  • Mensagens: 50
    • Ver perfil
Re: Script para rodar em background
« Resposta #5 Online: 20 de Setembro de 2007, 12:04 »
Seguinte... acrescentei alguns parametros e será que funcionará?
Pergunto, pq só posso testar isso nos finais de semana, pois somente nesses dias tenho acesso a maquina para testes.

è o seguinte.. Toda vez que o mpeg4ip iniciar, o arquivo de gravação final do video que ele gera será sempre nomeado com a data e hora atual .mp4


Código: [Selecionar]
#!/bin/sh
loop="enabled"
while [ $loop = "enabled" ]; do
data="`date +%d_%m_%Y`" #salva data atual em data
sed -i 's/^Name=.*/Name=$data.mp4/' /mpeg4ip/mpeg4ip.h #altera a linha Name= para Name=DD_MM_AAAA.mp4 do arq. de config do mpeg4ip
mpeg4ip& #pra rodar em 2 plano
sleep 1800 #30min
killall mpeg4ip  #fecha o programa

done
« Última modificação: 20 de Setembro de 2007, 20:27 por JarbasAugusto »

Offline JarbasAugusto

  • Usuário Ubuntu
  • *
  • Mensagens: 50
    • Ver perfil
Re: Script para rodar em background
« Resposta #6 Online: 20 de Setembro de 2007, 19:59 »
consegui testar hj.. mas tem um problema na linha sed
Não consigo jogar o valor da variavel $data.

Tem como ser feito?

Offline JarbasAugusto

  • Usuário Ubuntu
  • *
  • Mensagens: 50
    • Ver perfil
Re: Script para rodar em background
« Resposta #7 Online: 23 de Setembro de 2007, 14:24 »
bom consegui colocar o valor de $data no sed.. coloquei entre " " o comando todo..

mas to com outro problema

a linha qual quero alterar é a que inicia com "recordfile"

Citar
name=Teste
recordFile=/usr/local/movies/TFINAL.mp4

mas qndo tento o sed não aceita que coloque "/" no comando, tem outra forma de fazer essa substituição?
pois no final quero que fique assim:

recordFile=/usr/local/movies/$data.mp4

Offline JarbasAugusto

  • Usuário Ubuntu
  • *
  • Mensagens: 50
    • Ver perfil
Re: Script para rodar em background
« Resposta #8 Online: 23 de Setembro de 2007, 14:55 »
RESOLVIDO