バックグラウンドでxtermを実行して終了します。

バックグラウンドでxtermを実行して終了します。

HostA(マイLinuxデスクトップ)からホストBにSSH経由で接続します。

$ ssh hostB -X
$ (nohup xterm &)
$ (nohup xterm &)
$ exit   
## i don't get my prompt back

xtermウィンドウはホストAに表示されますが、ホストBにSSHを送信している端末は私にプロンプ​​トを返しません。

Ctrl + Cを押すとプロンプトが表示されますが、2つのxtermウィンドウが閉じます。

他のホストのバックグラウンドでxtermを実行して元の端末を解放する方法はありますか?

ありがとう

- アンドリュー

ベストアンサー1

-Xオプションは、SSH接続を介して実行されるX11トンネルを開きます。トンネルは、SSH接続が開いている場合にのみ存在できます。

要求されたタスクを実行するには、対話型セッションを含めずにSSH自体をバックグラウンドに配置する必要があります。

これを行う方法は少なくとも2つあります。 1つはSSH接続共有を設定することです。これにより、バックグラウンドでSSHを開き、共有接続を使用して複数のSSHセッションを開始できます。 SSHのマニュアルページにこれについての詳細があります。

より簡単な方法は、2つのxtermセッションを開くためにバックグラウンドでsshを開くことです。

ssh -n -X hostB sh -c "xterm&xterm" &

この-nオプションは ssh が stdin を使用しないように指示し、バックグラウンドに配置するようにします。 SSHにパスワードが必要な場合は、最後のパスワードを省略し、&パスワードを入力してバックグラウンドで一時停止することができます。

おすすめ記事