script (.sh) não terminará

0

Eu tenho um arquivo de script (start-conky.sh). Ele executa corretamente, mas quando eu faço um "ps -u" ele mostra como ainda um PID, o que eu estou assumindo significa que ainda está na memória. A menos que eu faça um "matar", fica lá. Não está causando nenhum problema. Estou apenas curioso sobre como fazer com que o script termine depois de ser executado. Eu listei o script abaixo. Eu realmente não sei muito sobre como escrever programas, então tenho certeza que há erros. Alguém pode ajudar?

Título: start-conky.sh "o título acabou de ser listado aqui não está no script"

#!/bin/bash

conky -c ~/Conky/scripts/config1 & conky -c ~/Conky/scripts/config2

exit
    
por user18432 17.04.2012 / 17:53

2 respostas

0

Quando um script é executado, cada linha é executada uma por vez e cada uma deve ser concluída antes que a próxima seja iniciada. O caractere & após um comando inicia o comando em segundo plano, permitindo que a próxima instrução seja executada imediatamente, sem esperar que a anterior seja concluída.

Assim, seu script está iniciando uma instância de conky em segundo plano usando o arquivo config1 e, em seguida, iniciando outra instância de conky em primeiro plano usando o arquivo config2 e aguarda a conclusão dessa instância antes de processar a próxima exit linha. Se você alterar seu script para ter um & após cada comando conky desta forma ...

#!/bin/bash

conky -c ~/Conky/scripts/config1 &
conky -c ~/Conky/scripts/config2 &

exit

... não esperará que eles terminem antes de processar o comando exit .

Como John e Eliah afirmaram, && é usado para encadear dois comandos juntos com o segundo executando apenas se o primeiro for concluído com êxito. Isso geralmente é feito a partir da linha de comando, em oposição a um script. Isso explica porque depois que você fez essa mudança, a segunda instância de conky nunca foi lançada. O primeiro nunca terminou para que o segundo pudesse começar.

Espero que isso elimine algumas coisas.

    
por Ramón 17.04.2012 / 22:10
2

O que é que & deveria fazer? A maneira como você o usa, enviará conky -c ~/Conky/scripts/config1 em segundo plano.

    
por Ruediger 17.04.2012 / 18:02