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
明らかに、スクリプトはまずリモートホストに送信されます。 :)