最近、12.04をインストールしました。
geditでファイルを編集しようとすると、編集ファイルを閉じるか、新しいターミナルを開く必要があるまで、ターミナルを使用できません。しかし、11.04ではこの問題はなかったと思いますが、よくわかりません。
とにかくこれを回避し、ファイルの編集中に同じターミナルを使用します。
応答しない端末で:
bg
と入力して入力します。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
によって返されるリストから削除されます。
次のように入力します:
gedit <filename-to-edit> &
これにより、コマンドプロンプトがすぐに返されます。
Nohup
を使用して、GUIが端末に接続されないようにすることができます。
Nohup mupdf some.pdf &
これにより、プログラムを閉じることなく、起動元のターミナルを閉じることができます。
また、Nohupコマンドは、実行するコマンドのstdout
およびstderr
を含むファイルを作成することに注意してください。それを防ぐには、&>/dev/null
の前に&
を追加します。
Nohup mupdf some.pdf &>/dev/null &
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
固有であることに注意してください。
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]
を通常どおり使用でき、バックグラウンドで起動します。
次のように入力します:
gedit FILENAME & disown
Bashで&
を使用してコマンドを終了すると、そのコマンドがバックグラウンドで実行されます。ただし、そのプロセスはまだ端末に接続されています。
私は間違っていたことがわかりました、これはbashの場合ではありませんが、zshの場合です。あなたはまだdisown
がない場合、ターミナルを閉じると、geditは閉じられ、編集されたファイルを保存するように求められることさえありません。 disown
は、現在のターミナルからバックグラウンドプロセスを切り離します。そのため、ターミナルを閉じても、geditは通常どおり実行され続けます。detach
を実行した後に実行する必要があります ctrl-z ただし、bashであってもbg
です。
組み込みのjobs
、disown
、および&
メタキャラクターの詳細については、 bash
コマンドのマンページを参照してください。 、特に「ジョブ制御」とラベル付けされたセクション。
これはおそらく、ターミナルからgeditを開いたためです。これを行うと、GUIから起動した場合は通常非表示になっているコマンドライン出力が表示されます。これを修正する最善の方法は、新しいターミナルウィンドウを開くことです。もう1つは、geditが終了すると使用可能になります。上記のユーザーが提案したスイッチを使用することもできます。