Я не могу использовать терминал во время выполнения команды gedit

40

Недавно я установил 12.04.
Когда я пытаюсь отредактировать файл с gedit , я не могу использовать терминал, пока не закрою файл редактирования, или я должен открыть новый терминал. Но я думаю, что у меня не было этой проблемы с 11.04, однако я не уверен.
Есть ли вообще избежать этого и использовать тот же терминал при редактировании файлов.

    
задан user175023 14.07.2013 в 09:14
источник

7 ответов

77

Краткий ответ

В нечувствительном терминале:

  1. Нажмите Ctrl + Z .
  2. Введите bg и введите.
  3. Введите disown и введите.

Длинный ответ

В нечувствительном терминале нажмите Ctrl + Z , это «приостановит» процесс (или «задание») и вернет вам консольный элемент управления. Однако вы заметите, что gedit перестает отвечать на запросы, и вы не можете его использовать.

Extra: if you want to, you can execute the command jobs, you'll notice that it'll read Stopped for the gedit command, that's why you can't use it.

Чтобы успешно выполнить задание в фоновом режиме (т. е. снова выполнить gedit отзыв), выполните команду bg (значение background). Теперь вы сможете использовать gedit и в то же время иметь подсказку для себя.

Extra: now, if you execute jobs, you'll notice that it'll read Running.

Вы можете все это преодолеть с самого начала. Когда вы запускаете gedit из терминала, добавьте & в конец команды, так что примерно так gedit /path/to/file & . Это запустит gedit в фоновом режиме с первого места (вам может понадобиться несколько раз нажать Enter , чтобы вернуть консольный элемент управления).

Extra: if you were following these extra notes, you might have noticed that the second time you did jobs, you could see that bash added a & to the end of the gedit command.

Как только вы привыкнете к этой системе, вы можете заметить, что если вы закроете терминал, gedit также завершится, даже без диалога подтверждения. Чтобы этого не произошло, запустите disown , который отделит процесс gedit от терминала, удалив его из списка, возвращенного jobs .

    
ответ дан Alaa Ali 14.07.2013 в 09:38
источник
41

Просто введите:

gedit <filename-to-edit> &

Это немедленно вернет вам командную строку.

    
ответ дан david6 14.07.2013 в 11:48
25

Вы можете использовать nohup для предотвращения подключения графического интерфейса к терминалу:

nohup mupdf some.pdf &

Это позволит вам закрыть терминал, с которого вы запускаете, без закрытия программы.

Вы также должны заметить, что команда nohup создаст файл с stdout и stderr команды, которую вы запустили. Если вы хотите предотвратить это, добавьте &>/dev/null до & .

nohup mupdf some.pdf &>/dev/null &
    
ответ дан Braiam 12.08.2013 в 01:21
19

Вы также можете использовать команду 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 .

Это сообщение в блоге объясняет оба метода довольно хорошо.

Страница пользователя для отказа

    
ответ дан jmathew 12.08.2013 в 05:25
11

От man gedit :

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

Итак, если вы запустите gedit с опцией -b , он запустится в фоновом режиме:

gedit -b [FILE-NAME]

Кроме того, вы можете создать псевдоним для gedit -b (см. здесь , как создать постоянный псевдоним):

alias gedit='gedit -b'

Теперь, в будущем, вы можете использовать gedit [FILE-NAME] как обычно, и он начнется в фоновом режиме.

    
ответ дан Radu Rădeanu 15.07.2013 в 14:02
10

Просто введите:

gedit FILENAME & disown

Завершение команды с & в bash запускает эту команду в фоновом режиме. Однако этот процесс все еще привязан к терминалу.

Без disown , если вы закроете терминал, gedit закроется, даже не предложив сохранить отредактированный файл. disown отделяет фоновый процесс от текущего терминала, так что, если вы закроете терминал, gedit будет продолжать работать как обычно. Оказывается, я ошибался, это не так для bash, но это случай для zsh. Вам еще нужно запустить detach после выполнения ctrl - z и bg , хотя и в bash.

Вы можете узнать больше о встроенных компонентах jobs , disown и метасимволе & в странице руководства для команды bash , особенно раздел с надписью «Управление заданиями».

    
ответ дан Flimm 16.07.2013 в 23:42
0

Это, вероятно, потому, что вы открыли gedit через терминал. Когда вы это сделаете, вы увидите вывод командной строки, который обычно скрыт, если он запускается через графический интерфейс. Лучший способ исправить это - открыть новое окно терминала. Другой станет доступен после закрытия gedit. Вы также можете использовать переключатель, предложенный выше пользователем.

    
ответ дан user175759 16.07.2013 в 21:12