ジョブの実行に使用する小さな SLURM クラスターがあります。スクリプトを実行し、スクリプトが実行されたときに特定のキーボードコマンド「t + Enter」を入力したいと思います。別のジョブを送信してこれを行う必要があると思いますが、最初の実行スクリプト内で実行するにはそのジョブが必要です。
これを達成する方法についてのアイデアはありますか?
答え1
聖ジョージ、
これを行うために、別のsbatchコマンドをキューに追加したくありません。 OpenHPCスタックを使用している場合は、wwsh ssh -a <command>
whereを使用して-a
すべてのノードを意味するか、コマンドを実行したいノードに置き換えることができます。
既存のバッチスクリプトでこれを行う場合は、使用を検討しましたかexpect
?入力を実行するのに必要な時間が決定的である場合、expect
プログラムは次の入力を受け入れます(t文字の後にreturnキーが続きます)。send -- "t\r"
詳しく知りたい場合は、expect
次の内容をご覧ください。https://likegeeks.com/expect-command/。
私の経験によれば、クラスターに多くのスペースがない場合や最大のパフォーマンスを得たい場合は、xdotool
システムにx11(または少なくとも必要な部分)をインストールするのではなく、コマンドライン専用の方法を使用することが役に立ちます。実行してください)。個人的な快適さがこれを決定します。