2016-03-02 191 views
1

我正在AWS EC2類型環境中進行計算。我有一個運行在headnode上的腳本,然後在它從headnode父shell中分離出來的VM上執行shell命令。在進程終止時運行腳本

headnode.sh

#!/bin/bash 
... 
nohup ssh -i vm-key [email protected] './vm_script.sh' & 
exit 0 

我像這樣做的原因,是該vm_script需要很長的時間才能完成。所以我想把它從headnode shell中分離出來,並讓它在VM的後臺運行。

vm_script.sh

#!/bin/bash 
... 
ssh -i head-node-key [email protected] './delete-vm.sh' 
exit 0 

一旦VM完成它發送一個命令給headnode刪除VM的任務。

在VM上的腳本完成後,是否有更可靠的方法來執行頭節點上的最終腳本?

例如,在啓動vm_script.sh之後,是否可以在等待VM完成PID的headnode上啓動另一個腳本?

回答

0

假設您信任網絡鏈接,更一般可靠的方法是更簡單的方法。我會改寫headnode.sh如下介紹:

#!/bin/bash 
... 
ssh -i vm-key [email protected] './vm_script.sh' && ./delete-vm.sh 

上面的腳本等待的vm_script.sh終止,然後調用./delete-vm.sh如果沒有錯誤代碼由vm_script.sh返回。

如果你不想被卡在外殼等待headnode.sh終止,只是把它用nohup ./headnode.sh &

+0

好主意。謝謝。 –

相關問題