2009-04-30 27 views
5

私のインタラクティブ32ビットWindowsアプリケーション(現在Delphi [Ent] 2007から2009に移行中)は、コマンドラインのやりとりを使用して計算集約型タスクを実行する子プロセスを生成し、GUI親アプリケーションが解析し、結果をインタラクティブにグラフィカルに表示します。WindowsアプリケーションからLinuxプロセスを起動する方法は?

私はマルチプロセッサ(マルチユーザ)Linuxクラスタ(ssh経由)にアクセスでき、そのクラスタへの負荷を軽減したいと考えています。私の質問は、WindowsアプリケーションからLinuxのプロセスを起動する方法です。私はセキュアなFTPを使ってファイルを入れたり取得したりすることができますが、Linuxで子プロセスを生成する方法はわかりません。

さらなる読書のためのいくつかのリードは良いでしょうが、コード/擬似コードが理想的でしょう。私はこれがDelphiよりもWindows-Linuxのやりとりのほうが多いかもしれないと思います。

答えて

6

sshにアクセスできる場合は、その中からコマンドを発行することもできます。たとえば :

ssh [email protected] ls -l ~ 

は、SSHターミナルでユーザのホームディレクトリ内のファイルが表示されます。これがあなたが本当に望むものなのかどうかは分かりません。しかし、それはうまくいくだろう。

あなたがこれを行う場合、あなたはほぼ確実しかし、より理想的な解決策がありそうな設定に唯一の仕事の背景に特定の長時間実行されるタスクを実行することであるLinuxマシン上のデーモンになり、セットアップSSH password less logins

にしたいです後で結果を取り出すことができます。

+0

私はリモートコマンドのそのスタイルについてはわかりませんでした。とにかく試してみるのは簡単です。 – Argalatyr

5

プロセスを実行するには、Linuxマシンに何かをインストールする必要があります。 Windowsからインストールしてアクセスできる、クラスタリングまたはバッチジョブのサブミットAPIがあります。カスタムサーバーをコーディングする必要があります。 Windowsからsshプロセスを起動できる場合や、sshdがLinux側にインストールされている場合は、ssh上のすべてを実行できます。しかし、私の好みは、あなたの議論とデータを取って、普通の古いhttp(あるいは場合に応じてhttps)で結果を返すように設計された、Linux側にwebserviceまたは単純なCGIスクリプトを書くことでしょう。

これは、Windows側のコーディングだけではありません。

+0

これはおそらく理想的な解決策であると私は同意しますが、あなたが提案するように、それは私のためにもう少し学習曲線を提示します - それは長期的には良いことかもしれません! – Argalatyr

+2

+1カスタムサーバーを使用することには多くの利点があります。特に、(それを書くのに使われた言語に依存して)物はWindows(ローカル)上で書かれ、デバッグされ、そしてsshdなしでさえ、多くの異なるプラットフォームに配備される。 FPCまたはMonoを使用する場合は、Pascal/Delphiの知識を活用することができます。また、プロセスの制御とデータの読み書きには同じメカニズムが使用されるという利点もあります。マルチプロセッサ・サーバー・ノードでも容易に拡張できます。 – mghie

+1

Argalatyr - カスタムサーバーを途中でコード化する必要がないので、nginxまたはlighttpdをインストールして、CGIまたはFastCGIインターフェイス経由でワーカーアプリケーションを特定のパスで呼び出すように設定する必要があります。サーバーは、多くのワーカーアプリケーションを実行し、必要がなくなったら閉じます。私はあなたがsshよりもむしろnginxをよく学ぶと思う。 IFテキストベースのHTTPでデータが膨らんだ場合、クライアントライブラリとサーバーの両方に対応していれば、HTTPは透明なZip/Unzipをサポートします。 –

5

私は完全な "パテ"パッケージをダウンロードします。

優れたセキュアシェル端末と同様に、ファイルを安全に転送するためのPSCPと、SSH経由のリモート実行コマンドへのPLINKが含まれています。

ヒント:PLINKが完全な公開鍵/秘密鍵の設定をして、迷惑なパスワードのプロンプトが表示されないようにする必要があります。有用なガイドはhttp://unixwiz.net/techtips/putty-openssh.html>です。

+0

私はパテを使用していますが、plinkを見落としてしまいました。 – Argalatyr

関連する問題