удаленный процесс, запущенный через ssh, убивается, если пользовательский интерфейс закрыт

Я написал скрипт, который по сути делает 2 вещи:

  • Запускает пользовательский интерфейс для прослушивания фактической программы, работающей на сервере
  • удаленно запустить программу на сервере

Все идет хорошо, пользовательский интерфейс запускается, затем программа запускается на сервере. Но как только я закрываю интерфейс, удаленный процесс уничтожается.

Соответствующие части сценария:

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 & 

Я также не могу выяснить, что убило процесс на сервере, т.е. сигнал, который завершил процесс и откуда он возник.

Редактировать: когда я добавляю screen -dm перед bash -c он работает отлично.