私は感動しています。インスタンスが停止する可能性があることに驚いている人は、ノート1 &を参照してください。
rootユーザーとして実行する必要はないので、 "sudo halt"を試すこともできますRを実行しているアカウントはsudoを実行できます。これはEC2の多くのAMIでよく見られます。
R終了の前提となるものに注意してください。信じていてもいなくても、Rがクラッシュする可能性があります.R PIDを監視し、PIDがアクティブになっていなくても終了するインスタンス。 Rの内部でこのコマンドを実行すると、Rがクラッシュした場合、停止する呼び出しには到達しません。別のスクリプトの中から呼び出すと、それも危険です。もしあなたがLinuxをよく知っているなら、あなたが探しているものはRを始めるときのPIDです。ps
をチェックする別のスクリプトに渡すことができます。そして1秒ごとにそうします。
もっと良い解決策は、または停止インスタンスを終了するために、EC2 APIツール(ドキュメント:http://docs.amazonwebservices.com/AWSEC2/latest/APIReference/参照)を使用することです。これらの2つの間には違いがあります。インスタンスがEBSにバックアップされている場合、またはS3がバックアップされている場合は重要です。インスタンスを終了するためにrootとして実行する必要はありません。秘密鍵と証明書を持っているということは、あなたのインスタンスにrootアクセス権を持つホーポロイの上にあるBOSSのアマゾンを示しています。
これらの資格情報はいたずらに使用される可能性があるため、特定のサーバーからAPIツールを実行する場合は、サーバー上に証明書と秘密キーが必要です。セキュリティ上の問題がある場合、それは悪い考えです。マスターサーバーにメッセージを送り、インスタンスをシャットダウンする方が良いでしょう。インスタンス間でメッセージングを設定している場合は、すべての作業を行うことができます。
注1:エリック・ハモンドreportsあなたはまだ保存料を持っているので、halt
のみ、EBSのインスタンスを一時停止します。あなたがそのようなインスタンスの多くを開始する場合、これは物事を混乱させる可能性があります。あなたの元の質問は、あなたがインスタンスを終了するか停止することを意味するかどうかは不明です。彼は他の良いアドバイスを持っていますon this page
注2:は、Windowsユーザー向けに&をアドバイスします。
注3:EBSインスタンスには、再起動しても部分的な時間が請求されます。 (this thread from the developer forumを参照してください)Rプロセスが動作していないと仮定して、そのインスタンスを再タスクする(再起動しないで保存する)場合に備えて、時間マークに近い自動サスペンドを使用すると便利です。検討するその他の便利なツール:setTimeLimit
とsetSessionTimeLimit
、およびさまざまなチェックポイントツール(Qはmentions a coupleです)。 auto-killを使用すると、コードの動作が悪くなる可能性がある場合に便利です。
注4:私は最近、shutdown
コマンドをfun
というパッケージで知った。これはマルチプラットフォームです。解説はthis blog post、コードはhereです。危険なものですが、Windowsに適応したい場合には便利です。私はそれを試していない。
アップデート1.三つのより多くのアイデア:
- あなたはインスタンスを停止可能性があり、
q()
とquit()
ため.Last()
とrunLast = TRUE
を使用することができます。
- littlerまたはRscriptを使用してスクリプトを呼び出すスクリプトを使用する場合、同じコマンドライン関数を使用できます。
- 今日の私のお気に入りのパッケージ
tcltk2
には、式の実行をスケジュールするために使用することができるtclTaskSchedule()
と呼ばれるきちんとしたタイマーメカニズムがあります。あなたは、時間間隔が過ぎる直前に物事を実行すると狂ってしまうことがあります。
どのように奇妙な!私はあなたに私のコードをいくつかお送りすることができます。もしあなたがマシンを停止する*方法を見つけ出すことができれば、私はとても幸せになれます。 :) – Iterator
いくつかのことを明確にすることができますか?(1)EBSまたはS3をサポートしているインスタンスを使用していますか? (EBSを使用している場合は、インスタンスを終了または停止しますか?)(2)Rはどのように使用されていますか?対話的に、スクリプトを介して、これらのHadoopパッケージの1つを介して、インスタンス「ユーザデータ」、またはその他の手段を介して – Iterator
キッチンをきれいにする 'sudo make sandwich 'の素晴らしい拡張。ニース。 –