O comando remoto SSH executa permanece sem desconectar quando terminar de executar?

1

Estou tentando criar um script / comando que reinicie nosso serviço Asterisk / Elastix em nosso PBX. O script é basicamente usando o comando simples com a chave pública de login automático que é executada a partir do Ubuntu 14.04LTS:

O script de comando é:

ssh user@iphost 'service asterisk restart'

Mas depois que o comando foi finalizado e o serviço foi reiniciado, o ssh permanece e somente após ctrl c ser quebrado.

Minha pergunta é como posso terminar a sessão após o comando ser concluído?

    
por user1289947 16.07.2014 / 15:29

4 respostas

1

Tente redirecionar stdin, stdout e stderr para / dev / null. Para obter uma explicação, consulte o link .

    
por user100464 16.07.2014 / 15:40
0

Tente usar "aqui documento"

ssh user@iphos << endexe
   service asterisk restart
   exit
endexe

Isso deve funcionar.

    
por YoMismo 16.07.2014 / 15:41
0

Você pode fazer um plano de fundo assim que for executado:

ssh user@iphost 'service asterisk restart &'

Eu tenho um problema semelhante com um serviço upstart xinit -based que monopoliza o estágio e precisa sair manualmente (não prejudica o trabalho do Upstart), mas sim, wang a & no final e que deve forçá-lo em segundo plano.

Se isso lhe der gyp, existem várias outras opções como:

ssh user@iphost 'setsid service asterisk restart'
    
por Oli 16.07.2014 / 15:52
0

Você pode usar um dos seguintes comandos:

  • Reinicia o serviço e sai:

    ssh user@iphost 'service asterisk restart; exit'
    
  • Reinicia o serviço e sai depois do sucesso:

    ssh root@iphost 'service asterisk restart && exit'
    
por Louis Matthijssen 16.07.2014 / 16:01