ヘッドレスが不可能な複数のLinuxサーバーでプログラムを簡単に起動する最善の方法は何ですか?

ヘッドレスが不可能な複数のLinuxサーバーでプログラムを簡単に起動する最善の方法は何ですか?

ヘッドレスが不可能な複数のUbuntuサーバーでプログラムを実行しようとしています。数日に一度再起動する必要がありますが、簡単にできる方法を探しています。 LinuxシステムにVNCサーバーがインストールされていてそれに接続してプログラムを起動できますが、問題はTightVNCを手動で開き、TightVNC GUI内でターミナルを開いてプログラムを起動するコマンドを実行する必要があることです。

理想的に私が望むのは、私のローカルWindowsコンピュータの端末に1行を書いて自分のサーバーでプログラムを起動し、自分のローカルコンピュータがシャットダウンしてもサーバー上でプログラムを実行できることです。

答え1

GUIアプリケーションを実行する必要がありますか、プレーンテキストプログラムを実行する必要がありますか?

端末を開くことについて言及したので、これがテキストプログラムであるとします。もしそうなら、VNCを使用する必要はありませんssh

SSH接続が中断されてもプログラムを実行し続ける必要がある場合は、ターミナルnohupマルチプレクサ(または)tmuxでプログラムを使用または実行できますscreen。ログアウト時にすべてのユーザープロセスを終了するようにsystemdが設定されている場合は、それを再設定する必要があります。

  1. 編集する/etc/systemd/logind.conf
  2. 行を追加しますKillUserProcesses=no(logind.confにすでにコメントアウトされている行がある可能性があります。コメントアウトを削除するだけです)。
  3. 保存と終了
  4. 走るsystemctl daemon-reload

もちろん、上記の作業はすべてrootとして実行する必要があります。

答え2

EPELでpdsh見る並列分散シェル

================================================================================
 Package                Arch            Version             Repository     Size
================================================================================
Installing:
   pdsh                   x86_64          2.34-5.el7          epel          114 k
Installing for dependencies:
   pdsh-rcmd-ssh          x86_64          2.34-5.el7          epel           15 k


   man pdsh

   pdsh is a variant of the rsh(1) command. Unlike rsh(1), which runs com‐
   mands on a single remote host, pdsh can run multiple remote commands in
   parallel.  pdsh  uses a "sliding window" (or fanout) of threads to con‐
   serve resources on the initiating host while allowing some  connections
   to time out.

pdshは、ヘッドノードとそのコンピューティングノードの間のクラスタで実行されているように、サーバー間でパスワードのないログインを許可するようにSSHキーを設定するとうまく機能します。

関連情報