リモート スクリプトのクリーンアップ

リモート スクリプトのクリーンアップ

ssh を使用してリモート スクリプトを実行します。

ローカルスクリプト:

local_command
ssh -p 222 user@server 'sh -s' < ./remote_run.sh

リモートスクリプト:

some_command & 
sleep 10000
trap 'echo exiting' SIGINT SIGTERM SIGABRT SIGKILL EXIT

クリーンアップ (実行中のプロセスを終了し、ファイルを削除) のためにリモート スクリプトにトラップが必要です。ただし、使用したアプローチは機能しません。

助言がありますか?

答え1

試してみたところ、見事に機能しました。

ssh -p 222 user@server "nohup ./remote_run.sh"

そしてremote_run.sh

some_command &
sleep 10000
ps -aux | grep "[r]emote_run.sh" | awk '{print $2}' | xargs kill -9
#killed

当然ですが、スクリプトはまずリモート ホストに転送されます。:)

関連情報