他の端末でコマンドを実行し、コマンドを終了せずに閉じます。

他の端末でコマンドを実行し、コマンドを終了せずに閉じます。

スクリプト/コマンドを終了せずに端末を閉じるには、&コマンドを呼び出すときに最後に演算子を使用します。良い:

gedit &

geditここではサンプルコマンドとして使用しています。

他の端末(現在の端末)で同じことをしたいのですが。他の端末でスクリプト/コマンドを実行するには、以下を使用しています。

  • gnome-terminal -e 'gedit'
  • gnome-terminal -x bash -c 'gedit'

しかし、ここでドアを閉めると新しくオープンしたターミナル、実行中のスクリプト/プログラム[command]も終了します。だから&私は次を試しました。

  • gnome-terminal -e 'gedit' &
  • gnome-terminal -x bash -c 'gedit' &

しかし、上記のいずれも機能しません。

したがって、これを達成する方法は次のとおりです。現在の端末で起動し、gnome-terminal他の端末でコマンドを実行し、gnome-terminalコマンドを開始した後、実行中の端末を終了せずに対応する(新しく開かれた)端末を閉じますcommand

答え1

このコマンドを使用できますnohup。これにより、ターミナルからプロセスが切断されるため、gnomeターミナルウィンドウを閉じても引き続き実行されます。

例:gnome-terminal -e "nohup bash gedit"

答え2

画面ユーティリティを使用できます。 Screenは、複数のプロセス(通常は対話型シェル)で動作するフルスクリーンウィンドウマネージャですman screen。 。

シェルでscreenコマンドを実行すると、シェルを含む新しいウィンドウが作成されます。必要なコマンド/スクリプト/デーモンを実行できます。ショートカットCtrl + A + Dを使用してウィンドウから簡単に切り離すことができます。

開始したすべてのセッションを一覧表示するには、を使用できますscreen -list。最後に分離されたセッションに接続しscreen -rたり、特定のセッションに接続したい場合は、接続を使用できますscreen -r <host.tty>

例:

[root@dns-ldap ~]# screen -list
There are screens on:
        5708.pts-0.dns-ldap     (Detached)
        5648.pts-0.dns-ldap     (Detached)
        5725.pts-0.dns-ldap     (Detached)
3 Sockets in /var/run/screen/S-root.

[root@dns-ldap ~]# screen -r 5708.pts-0.dns-ldap #this will attach you to terminal 5708.pts-0.dns-lda. I have detached from the terminal usinc Ctrl+A+D
[detached]
[root@dns-ldap ~]# screen -r 5648.pts-0.dns-ldap
[detached]
[root@dns-ldap ~]#

答え3

コンビネーションnohup&screen、ついに私が欲しいものを達成しました。

渡すキリラgnome-terminal -e "nohup bash gedit"、次のコマンドを使用することをお勧めします。

ところで、上記の命令を利用すれば命令を実行でき、実行gnome-terminal中の命令を終了せずに新たに開いた命令を閉じることができる。しかし、新しく開いたウィンドウを手動で閉じる必要がありますgnome-terminal。コマンドを開始した後、自動的に閉じたいと思います。

渡すディミタール・ディミトロフ screenコマンドを使用することをお勧めします。

ついに私は私のものをscreen使ったnohup最終的なコマンドは次のとおりです。

  • gnome-terminal -e 'screen nohup gedit'

  • gnome-terminal -x bash -c 'screen nohup gedit'

上記のコマンドのいずれかを使用すると、次のような結果が得られます。コマンドは新しい端末ウィンドウで実行され、コマンドの実行後に実行中のコマンドを終了せずに、新しく開いた端末が閉じます。

関連情報