|
From: | Julio C. Neves |
Subject: | Re: [shell-script] Não executar processo se o mesmo já estiver em execução |
Date: | Mon, 24 Mar 2014 14:20:00 -0300 |
Próximos cursos de Shell |
||
Cidade |
Local |
Período |
Rio de Janeiro |
07-11/04 |
Caros,Eu incluiria os parametros que foram passados para o processo. Tanto no grep quanto no pgrep (com "-f"). Afinal um "faz_backup.sh minhapasta" é bem diferente de um "faz_backup.sh outrapasta". A solução com arquivos temporários pode te dar problemas se o processo morrer sem ter apagado o arquivo de lock que ele criou.
2014-03-24 14:00 GMT-03:00 Leslie Watter <address@hidden>:Oi,Outra alternativa é usar o comando pidof com a opção -x que te retorna um PID de processo caso o projeto esteja em execução.De qualquer forma, é fácil de pegar se o programa está em execução com o pidof + um teste if.---------------------------------------------------------------------------[6197:3927 - 3:2171] 01:56:48 [leslie@ecelepar16853:o +2] /tmp$ ps -ef | grep a.shleslie 14434 6197 0 13:56 pts/9 00:00:00 /bin/bash ./a.shleslie 14443 6197 0 13:56 pts/9 00:00:00 grep --color=auto a.sh[6197:3927 - 3:2172] 01:56:50 [leslie@ecelepar16853:o +2] /tmp$ pidof a.sh[6197:3927 - 3:2173] 01:56:57 [leslie@ecelepar16853:o +2] /tmp$ pidof -x a.sh14434[6197:3927 - 3:2174] 01:57:00 [leslie@ecelepar16853:o +2] /tmp$ cat a.sh#!/bin/bashsleep 1m;[6197:3927 - 2:2176] 01:59:13 [leslie@ecelepar16853:o +2] /tmp$ if [ `pidof -x a.sh` ] ; then echo "em Execução"; fiem Execução--------------------------------------------------------------------------------[]sLEslie2014-03-24 13:51 GMT-03:00 Julio C. Neves <address@hidden>:
Acabei de escrever esse código para a 2ª edição do livro "Bombando o Shell (Caixa de ferramentas gráficas do Shell)":pgrep ^$1$ > /dev/null &&yad --button "Matar:0" --button "Ignorar:1" \--text "Já existe outra instância de $1 sendo \executada,\nDeseja matá-la?" && killall $1eval $1Ele é feito para ser usado com o yad, mas se vc quiser matar direto sem perguntar nada, basta fazer:pgrep ^$1$ > /dev/null && killall $1 # Mata todas as instânciaseval $1 # dispara um novo processoAbcs,Julio@juliobash
Próximos cursos de Shell
Cidade
Local
Período
Rio de Janeiro
07-11/04
Dou treinamento de shell em qualquer cidade.
Para detalhes, entre em contato por email ouecho 436233889341364416673541503686485725801923229706P | dcEm 24 de março de 2014 13:39, <address@hidden> escreveu:Olá pessoal!
Como vão?
Estou implementando algumas rotinas num novo server e uma das coisas que pretendo fazer é que determinado script não seja executado se os mesmo já estiver em execução. Só não sei se há algum comando que ja tenha sido criado para essa finalidade. Se não houver, acho que vou resolver por meio da criação de arquivos temporários, o que ao meu ver não é a melhor solução ou utilizando o comando ps.
Talvez alguém aqui já tenha enfrentado esta questão e seria legal saber como foi resolvido.
Um grande abraço!--
Leslie H. Watter
--
[Prev in Thread] Current Thread [Next in Thread]
- Não executar processo se o mesmo já estiver em execução, eduardo.a.s.amaral, 2014/03/24
- Re: [shell-script] Não executar processo se o mesmo já estiver em execução, Tiago Peczenyj, 2014/03/24
- Re: [shell-script] Não executar processo se o mesmo já estiver em execução, Julio C. Neves, 2014/03/24
- Re: [shell-script] Não executar processo se o mesmo já estiver em execução, Leslie Watter, 2014/03/24
- Re: [shell-script] Não executar processo se o mesmo já estiver em execução, Christian Lyra, 2014/03/24
- Re: [shell-script] Não executar processo se o mesmo já estiver em execução, Tiago Peczenyj, 2014/03/24
- Re: [shell-script] Não executar processo se o mesmo já estiver em execução, Julio C. Neves <=
- Re: Não executar processo se o mesmo já estiver em execução, eduardo.a.s.amaral, 2014/03/24
- Re: Não executar processo se o mesmo já estiver em execução, itamarnet, 2014/03/24
- Re: [shell-script] Re: Não executar processo se o mesmo já estiver em execução, Paulo Bettega, 2014/03/24
- Re: [shell-script] Re: Não executar processo se o mesmo já estiver em execução, Julio C. Neves, 2014/03/24
- Re: [shell-script] Re: Não executar processo se o mesmo já estiver em execução, Eliel, 2014/03/25
Re: [shell-script] Não executar processo se o mesmo já estiver em execução, Tiago Peczenyj, 2014/03/25 Re: [shell-script] Não executar processo se o mesmo já estiver em execução, Alfredo Casanova, 2014/03/25
- Prev by Date: Re: [shell-script] Não executar processo se o mesmo já estiver em execução
- Next by Date: Re: [shell-script] Pegar somente o nome completo
- Previous by thread: Re: [shell-script] Não executar processo se o mesmo já estiver em execução
- Next by thread: Re: Não executar processo se o mesmo já estiver em execução
- Index(es):