Rodar executável pelo shell e fechar terminal [RESOLVIDO]

1. Rodar executável pelo shell e fechar terminal [RESOLVIDO]

José Carlos Taveira
taveirajc

(usa Outra)

Enviado em 12/06/2014 - 13:56h

Galera.

Fiz um script shell que copia um arquivo de um drive do Windows para um drive no Mint.
Em seguida a esta cópia, chamo um executável.
Ele carrega e a tela do executável é mostrada na tela. É o programa Rainlendar2.
Mas quando eu fecho o terminal, o programa é fechado.
O programa fica vinculado ao terminal.
Segue o script. Como resolve isto?
Obrigado.

# copiarain.
#!/bin/sh
killall rainlendar2
sudo cp /media/taveira/SISTEMA/Users/taveira/.rainlendar2/Default.ics /home/taveira/.config/.rainlendar2/Default.ics
rainlendar2
exit


José Carlos


  


2. MELHOR RESPOSTA

Paulo
paulo1205

(usa Ubuntu)

Enviado em 16/06/2014 - 11:46h

Na verdade, se ele estiver usando o GNOME, o script que eu tinha enviado antes seria reescrito da seguinte forma (preste atenção a quando e onde usar ou não usar espaços).

#!/bin/bash

ORIGEM="/media/taveira/SISTEMA/Users/taveira/.rainlendar2"
DESTINO="/home/taveira/.config/.rainlendar2"

killall rainlendar2

# kdesudo (ou gksudo) pedem senha no próprio ambiente gráfico.
if ! \
gksudo -g -m "Digite sua senha para permitir a cópia do arquivo." \
'sh -c '\''
cp "'"$ORIGEM"'/Default.ics" "'"$DESTINO"'/" &&
chown '`id -u`' "'"$ORIGEM"'/Default.ics"
'
# O comando complexo acima copia o arquivo e restaura a permissão
# para o seu usuário (suponho que seja não-root).
then
if ! \
zenity --question \
--text="A cópia do arquivo de configuração falhou. Deseja executar o <B>rainlendar2</B> com o arquivo atual?" \
--ok-label="Sim" --cancel-label="Não" --title="Operação de cópia falhou."
then
exit 1
fi
fi

exec rainlendar2 "$@"


Obviamente, o script acima depende da presença na máquina dos pacotes do gksu e zenity.

3. Re: Rodar executável pelo shell e fechar terminal [RESOLVIDO]

Paulo
paulo1205

(usa Ubuntu)

Enviado em 12/06/2014 - 15:04h

rainlendar2 &


4. Re: Rodar executável pelo shell e fechar terminal [RESOLVIDO]

José Carlos Taveira
taveirajc

(usa Outra)

Enviado em 13/06/2014 - 08:05h

Oi Paulo.

Obrigado pela atenção.
Eu já tinha experimentado a sua sugestão.
O que acontece? Não dá nenhum erro, mas o calendário do programa Rainlendar2 não aparece na tela.
Tentei também o NOHUP e não funcionou.
Como estou fazendo?
Eu dou 2 cliques no programa .sh.
Aparece uma tela com as opções: Executar, Executar em terminal ou cancelar.
Se seleciono executar, não acontece nada.
Se seleciono executar em terminal, me é solicitada a senha e o programa é executado, o calendário fica na tela, mas se eu fechar o terminal o programa é fechado.
Colocando sua sugestão, o calendário não aparece na tela.
Será que existe outra maneira mais fácil.
Não sou muito experiente no Linux.
Estou gostando muito e aprendendo aos poucos.
Obrigado.

José Carlos



5. Re: Rodar executável pelo shell e fechar terminal [RESOLVIDO]

Thiago Thomaz
thiagorthomaz

(usa Ubuntu)

Enviado em 13/06/2014 - 10:43h

taveirajc escreveu:

Oi Paulo.

Obrigado pela atenção.
Eu já tinha experimentado a sua sugestão.
O que acontece? Não dá nenhum erro, mas o calendário do programa Rainlendar2 não aparece na tela.
Tentei também o NOHUP e não funcionou.
Como estou fazendo?
Eu dou 2 cliques no programa .sh.
Aparece uma tela com as opções: Executar, Executar em terminal ou cancelar.
Se seleciono executar, não acontece nada.
Se seleciono executar em terminal, me é solicitada a senha e o programa é executado, o calendário fica na tela, mas se eu fechar o terminal o programa é fechado.
Colocando sua sugestão, o calendário não aparece na tela.
Será que existe outra maneira mais fácil.
Não sou muito experiente no Linux.
Estou gostando muito e aprendendo aos poucos.
Obrigado.

José Carlos



Essa partição de origem que é windows você consegue acessar? Pq se você estiver usando windows 8, eu ouvi dizer que por padrão ele não "desliga" o hd ele deixa o hd em um estado de hibernação ai não é simples de acessar o hd por outro OS. Aqui o cara fala disso: http://showmetech.band.uol.com.br/tutorial-acesse-livremente-suas-particoes-ntfs-no-linux-em-uma-maq...





6. Re: Rodar executável pelo shell e fechar terminal [RESOLVIDO]

José Carlos Taveira
taveirajc

(usa Outra)

Enviado em 13/06/2014 - 11:01h

Ola amigo.

Nessa parte do HD do Windows não tem problema.
Se eu digitar os comandos do script no terminal, funciona certinho colocando o & depois do aplicativo. (rainlendar2 &)
Não está funcionando dentro do script.
Não dá erro, mas o aplicativo não está sendo executado.
Obrigado pela força.

J.Carlos




7. Re: Rodar executável pelo shell e fechar terminal [RESOLVIDO]

Luís Fernando C. Cavalheiro
lcavalheiro

(usa Slackware)

Enviado em 13/06/2014 - 11:08h

taveirajc escreveu:

Galera.

Fiz um script shell que copia um arquivo de um drive do Windows para um drive no Mint.
Em seguida a esta cópia, chamo um executável.
Ele carrega e a tela do executável é mostrada na tela. É o programa Rainlendar2.
Mas quando eu fecho o terminal, o programa é fechado.
O programa fica vinculado ao terminal.
Segue o script. Como resolve isto?
Obrigado.

# copiarain.
#!/bin/sh
killall rainlendar2
sudo cp /media/taveira/SISTEMA/Users/taveira/.rainlendar2/Default.ics /home/taveira/.config/.rainlendar2/Default.ics
rainlendar2
exit


José Carlos


Supondo que tudo esteja correto no script, o que você quer (executar o script e fechar a janela do terminal a seguir) se consegue com
 $ nome_script && exit & 

No entanto, você diz que no script os comandos não funcionam. Logo, execute assim:
 $ nome_script && exit 

E cola aqui a mensagem de erro.

EDIT: Agora, se o que você quer é que a sopa de letrinhas não fique subindo pela tela...
 $ nome_script 1&> /dev/null 2&> /dev/null && exit 

Se o script invoca janelas nas quais fazer opções, prefira esta última forma.

SEGUNDO EDIT:
# copiarain.
#!/bin/sh
killall rainlendar2
sudo cp /media/taveira/SISTEMA/Users/taveira/.rainlendar2/Default.ics /home/taveira/.config/.rainlendar2/Default.ics
rainlendar2
exit


O script está escrito errado: a linha #!/bin/sh precisa ser a primeira. Faça essa edição.


8. Re: Rodar executável pelo shell e fechar terminal [RESOLVIDO]

José Carlos Taveira
taveirajc

(usa Outra)

Enviado em 13/06/2014 - 11:31h

Bom dia lcavaleiro.

Das suas sugestões, a que funcionou foi assim.
Abri o terminal e digitei:
./copiarain.sh && exit

Mas eu não queria abrir terminal e digitar isso. Queria criar um arquivo que eu desse 2 cliques e ele executasse o comando acima ao invés de eu ter que abrir um terminal e digitar o comando acima.
Tem jeito de fazer isso?

Obrigado.

J.Carlos



9. Re: Rodar executável pelo shell e fechar terminal [RESOLVIDO]

Paulo
paulo1205

(usa Ubuntu)

Enviado em 13/06/2014 - 11:42h

taveirajc escreveu:

Oi Paulo.

Obrigado pela atenção.
Eu já tinha experimentado a sua sugestão.
O que acontece? Não dá nenhum erro, mas o calendário do programa Rainlendar2 não aparece na tela.
Tentei também o NOHUP e não funcionou.
Como estou fazendo?
Eu dou 2 cliques no programa .sh.
Aparece uma tela com as opções: Executar, Executar em terminal ou cancelar.
Se seleciono executar, não acontece nada.
Se seleciono executar em terminal, me é solicitada a senha e o programa é executado, o calendário fica na tela, mas se eu fechar o terminal o programa é fechado.


Ele pede a senha no terminal de texto ou num formulário do ambiente gráfico?

Colocando sua sugestão, o calendário não aparece na tela.


Eu não conheço a aplicação. Tente fazer o seguinte.

rainlendar2 < /dev/null > /dev/null 2>&1 & 


Será que existe outra maneira mais fácil.


Por que você não chama diretamente a aplicação?


10. Re: Rodar executável pelo shell e fechar terminal [RESOLVIDO]

Luís Fernando C. Cavalheiro
lcavalheiro

(usa Slackware)

Enviado em 13/06/2014 - 11:44h

taveirajc escreveu:

Bom dia lcavaleiro.

Das suas sugestões, a que funcionou foi assim.
Abri o terminal e digitei:
./copiarain.sh && exit

Mas eu não queria abrir terminal e digitar isso. Queria criar um arquivo que eu desse 2 cliques e ele executasse o comando acima ao invés de eu ter que abrir um terminal e digitar o comando acima.
Tem jeito de fazer isso?

Obrigado.

J.Carlos


Cria um segundo script com essa linha, deixa os dois (tanto o script que você criou antes quanto o segundo que você criou agora), deixe os dois executáveis e crie o lançador para esse segundo script com essa linha simples. Sacou?


11. Re: Rodar executável pelo shell e fechar terminal [RESOLVIDO]

Luís Fernando C. Cavalheiro
lcavalheiro

(usa Slackware)

Enviado em 13/06/2014 - 11:45h

paulo1205 escreveu:

taveirajc escreveu:

Oi Paulo.

Obrigado pela atenção.
Eu já tinha experimentado a sua sugestão.
O que acontece? Não dá nenhum erro, mas o calendário do programa Rainlendar2 não aparece na tela.
Tentei também o NOHUP e não funcionou.
Como estou fazendo?
Eu dou 2 cliques no programa .sh.
Aparece uma tela com as opções: Executar, Executar em terminal ou cancelar.
Se seleciono executar, não acontece nada.
Se seleciono executar em terminal, me é solicitada a senha e o programa é executado, o calendário fica na tela, mas se eu fechar o terminal o programa é fechado.


Ele pede a senha no terminal de texto ou num formulário do ambiente gráfico?

Colocando sua sugestão, o calendário não aparece na tela.


Eu não conheço a aplicação. Tente fazer o seguinte.

rainlendar2 < /dev/null > /dev/null 2>&1 & 


Será que existe outra maneira mais fácil.


Por que você não chama diretamente a aplicação?


Porque o script pára a aplicação, faz um backup e a reinicia.


12. Re: Rodar executável pelo shell e fechar terminal [RESOLVIDO]

José Carlos Taveira
taveirajc

(usa Outra)

Enviado em 13/06/2014 - 11:48h

Oi Paulo.

Ele pede a senha no terminal. Na aplicação não tem senha.
A sua sugestão eu coloquei dentro do arquivo do script, executei, não deu erro, mas não
abre o programa.
A única forma que funcionou foi eu ter aberto o terminal, e digitado ./copiarain.sh && exit.
Mas eu não queria abrir o terminal. queria clicar em um arquivo e ele executar esse comando.
Eu não abro direto a aplicação porque preciso transferir antes um arquivo em uma pasta no Windows, que é o arquivo mais atualizado.

Obrigado.

J.carlos




01 02 03



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts