0

次のコマンドを使用してマシンにシェルを開き、putty -load session_nameコマンドを実行して Linux システムのグリッド キューにジョブを追加すると ( qsub -cwd -b hostname)、すべて正常に動作します。

しかし、コマンドをテキスト ファイルに追加して実行するとputty -load session_name -m file.txtqsub: command not found

取り消してテキスト ファイルを単純化してコマンドのみにしhostname、-m オプションを使用すると、問題なく動作します。

Connection->SSH->Remote コマンドを使用し、-m コマンドと同様のことを行うと、コマンド ラインと同じ結果が得られます。

私はLinuxシステムの初心者であり、「qsub」がどこかに存在することを伝えるための簡単な修正であるように思えます。それか、これらのリモートアクセスにいくつかの制限があります...

編集:

わかりました、最初の質問はそれを実行する方法でした-そして私はそれを理解しました(絶対パスを追加します)が、他の環境変数の問題もあります. 変数を設定するqsub必要があるSGE_ROOTようですが、リモートコマンドウィンドウにも設定されていません。

したがって、より良い質問は、手動コマンド ライン シェルと同じプロパティとセットアップで putty リモート コマンド シェル (-m を使用) を開くにはどうすればよいかということです。

4

1 に答える 1

1

qsubインタラクティブにログインするときはパスにありますが、非インタラクティブ シェルではそうではありません。スクリプトに完全なパスを指定するか、スクリプトに設定PATHすると、問題を解決する必要があります。

対話型セッションのコンテキストでコマンドを実行する必要があるようですが、sshdプロトコルは直接それを行いません。そのため、 を介して間接的にコマンドを呼び出してみてください/bin/sh

/bin/sh -i -c "qsub -cwd -b hostname"

は、シェルを対話型シェルのように初期化するため、実際の対話型シェルにロードされている-iすべての環境変数をロードし.profileます。.bashrcは、その-cインタラクティブ シェル内で実行するコマンドを提供します。

対話型セッションで機能するため、この方法でパスを明示的に設定する必要はありません。

于 2013-10-28T18:08:05.153 に答える