私は基本的に2つのことを行うスクリプトを書いています。
- サーバーで実行されている実際のプログラムを受信するためにUIを実行します。
- サーバーからリモートでプログラムを実行する
すべてがうまくいき、UIが起動し、プログラムがサーバー上で実行されます。ただし、UIを閉じるとすぐにリモートプロセスが終了します。
スクリプトの関連部分:
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
いきます。