ヘッドレスが不可能な複数のUbuntuサーバーでプログラムを実行しようとしています。数日に一度再起動する必要がありますが、簡単にできる方法を探しています。 LinuxシステムにVNCサーバーがインストールされていてそれに接続してプログラムを起動できますが、問題はTightVNCを手動で開き、TightVNC GUI内でターミナルを開いてプログラムを起動するコマンドを実行する必要があることです。
理想的に私が望むのは、私のローカルWindowsコンピュータの端末に1行を書いて自分のサーバーでプログラムを起動し、自分のローカルコンピュータがシャットダウンしてもサーバー上でプログラムを実行できることです。
答え1
GUIアプリケーションを実行する必要がありますか、プレーンテキストプログラムを実行する必要がありますか?
端末を開くことについて言及したので、これがテキストプログラムであるとします。もしそうなら、VNCを使用する必要はありませんssh
。
SSH接続が中断されてもプログラムを実行し続ける必要がある場合は、ターミナルnohup
マルチプレクサ(または)tmux
でプログラムを使用または実行できますscreen
。ログアウト時にすべてのユーザープロセスを終了するようにsystemdが設定されている場合は、それを再設定する必要があります。
- 編集する
/etc/systemd/logind.conf
- 行を追加します
KillUserProcesses=no
(logind.confにすでにコメントアウトされている行がある可能性があります。コメントアウトを削除するだけです)。 - 保存と終了
- 走る
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キーを設定するとうまく機能します。