processo remoto executado através de ssh é morto se a interface do usuário for fechada

0

Eu escrevi um script que essencialmente faz duas coisas:

  • Executa uma interface do usuário para ouvir o programa em execução no servidor
  • executa remotamente o programa no servidor

Tudo corre bem, a interface do usuário é iniciada e, em seguida, o programa é executado no servidor. Mas assim que fecho a interface do usuário, o processo remoto é morto.

Porções relevantes do script:

ui_pid = subprocess.check_output('/home/user/git/sim_ui.sh', shell=True)
command = 'ssh user@server "bash -c \'cd program_dir/ && echo \"running program >> log.out && ./program.sh >> log.out\'"'
print command                                                                                       
os.system(command)

sim_ui.sh :

nohup ui_binary args > ui_out.txt &

Eu também não consigo descobrir o que matou o processo no servidor, ou seja, o sinal que finalizou o processo e de onde ele se originou.

Editar: Quando adiciono screen -dm antes de bash -c , funciona perfeitamente.

    
por user3286661 27.07.2018 / 10:17

0 respostas