web-dev-qa-db-ja.com

geditコマンドの実行中に端末を使用できません

最近、12.04をインストールしました。
geditでファイルを編集しようとすると、編集ファイルを閉じるか、新しいターミナルを開く必要があるまで、ターミナルを使用できません。しかし、11.04ではこの問題はなかったと思いますが、よくわかりません。
とにかくこれを回避し、ファイルの編集中に同じターミナルを使用します。

43

簡潔な答え

応答しない端末で:

  1. ヒット Ctrl+Z
  2. bgと入力して入力します。
  3. disownと入力して入力します。

ロングアンサー

応答しない端末で、ヒット Ctrl+Z、これはプロセス(または「ジョブ」)を「一時停止」し、コンソールコントロールを返します。ただし、geditが応答しなくなり、使用できなくなります。

追加:必要に応じて、コマンドjobsを実行できます。これは、geditコマンドに対してStoppedであるため、使用できません。それ。

バックグラウンドでジョブを正常に実行するには(つまり、geditを再度応答可能にするには)、コマンドbg(バックグラウンドを意味する)を実行します。これで、geditを使用できるようになり、同時にプロンプ​​トが表示されます。

追加:ここで、jobsを実行すると、実行中と表示されます。

このすべてを最初から克服できます。ターミナルからgeditを起動するときは、コマンドの最後に&を追加します。したがって、このgedit /path/to/file &のようになります。これは、最初からバックグラウンドでgeditを起動します(ヒットする必要があるかもしれません Enter コンソール制御を取り戻すために数回)。

追加:これらの追加のメモに従っている場合、jobsを2回目にすると、bashがgeditコマンドの最後に&を追加したことがわかります。

このシステムに慣れると、ターミナルを閉じると、確認ダイアログなしでもgeditが終了することがわかります。これを防ぐには、disownを実行します。これにより、geditプロセスが端末から切り離され、jobsによって返されるリストから削除されます。

79
Alaa Ali

次のように入力します:

gedit <filename-to-edit> &

これにより、コマンドプロンプトがすぐに返されます。

43
david6

Nohupを使用して、GUIが端末に接続されないようにすることができます。

Nohup mupdf some.pdf &

これにより、プログラムを閉じることなく、起動元のターミナルを閉じることができます。

また、Nohupコマンドは、実行するコマンドのstdoutおよびstderrを含むファイルを作成することに注意してください。それを防ぐには、&>/dev/nullの前に&を追加します。

Nohup mupdf some.pdf &>/dev/null &
25
Braiam

disownコマンドも使用できます。ターミナルに接続する必要がなくなったプロセスをすでに開始している場合に特に便利です。

私が正しく覚えている場合の基本的な手順は、次のようなものです。

$ > firefox      #Oops
Ctrl + z         #Suspend the process
$ > bg           #Push the process to the background
$ > disown       #Detach most recent process started or stopped
$ > exit         #Terminal gone!

Disownはbash固有であることに注意してください。

このブログの投稿では、両方の方法を非常によく説明しています。

否認のマニュアルページ

19
jmathew

man geditから:

-b, --background
         Run gedit in the background.

したがって、-bオプションを指定してgeditを実行すると、バックグラウンドで開始されます。

gedit -b [FILE-NAME]

さらに、次にgedit -bのエイリアスを作成できます( here 永続的なエイリアスの作成方法を参照):

alias gedit='gedit -b'

これからは、将来的にはgedit [FILE-NAME]を通常どおり使用でき、バックグラウンドで起動します。

13
Radu Rădeanu

次のように入力します:

gedit FILENAME & disown

Bashで&を使用してコマンドを終了すると、そのコマンドがバックグラウンドで実行されます。ただし、そのプロセスはまだ端末に接続されています。

disownがない場合、ターミナルを閉じると、geditは閉じられ、編集されたファイルを保存するように求められることさえありません。 disownは、現在のターミナルからバックグラウンドプロセスを切り離します。そのため、ターミナルを閉じても、geditは通常どおり実行され続けます。 私は間違っていたことがわかりました、これはbashの場合ではありませんが、zshの場合です。あなたはまだdetachを実行した後に実行する必要があります ctrl-z ただし、bashであってもbgです。

組み込みのjobsdisown、および&メタキャラクターの詳細については、 bashコマンドのマンページを参照してください。 Manpage icon 、特に「ジョブ制御」とラベル付けされたセクション。

10
Flimm

これはおそらく、ターミナルからgeditを開いたためです。これを行うと、GUIから起動した場合は通常非表示になっているコマンドライン出力が表示されます。これを修正する最善の方法は、新しいターミナルウィンドウを開くことです。もう1つは、geditが終了すると使用可能になります。上記のユーザーが提案したスイッチを使用することもできます。

0
user175759