Как очистить запуск приложения GUI через терминал (чтобы он не дождался завершения)?

Редактировать 25.10.2016: Если вы не собираетесь использовать спящий режим, потому что вы не можете или вы предпочитаете suspend / S3, тогда вы можете отключить его в Grub, добавив noresume в GRUB_CMDLINE_LINUX_DEFAULT в /etc/default/grub и запустите [ f5]. Вот пример на Chromebook N22, работающем под управлением GalliumOS:

livewire@zc01:~$ systemd-analyze
Startup finished in 8.580s (kernel) + 4.160s (userspace) = 12.740s

livewire@zc01:~$ systemd-analyze
Startup finished in 3.595s (kernel) + 4.254s (userspace) = 7.850s

Я нашел это, потому что мне было любопытно, что часть загрузки «Выполнение сценариев локального подсчета» во время загрузки и немного исследовалась в initramfs, что привело меня к этот параметр, который я использовал ранее, когда моя система не могла проснуться из спящего режима.

Редактировать 06.08.2016: вам следует обновиться до последней версии вашего дистрибутива Linux, который приходит с системойd.

Ингредиенты:

Получите систему UEFI с незащищенным кодом UEFI или Coreboot. Установите SSD. Установите Ubuntu в режиме UEFI. Бонус: сжимайте initramfs с помощью xz lzop и включают только модули. (Вы должны действительно знать, что делаете, прежде чем пытаться это сделать.) Бонус: Удалите ненужные демоны или настройте их для запуска быстрее. Хотя установка по умолчанию уже достаточно хороша. Пример: задание инициализации btrfs, которое ищет пулы для монтирования, пока на этом устройстве нет томов btrfs. Это заставило меня удалить инструменты btrfs из некоторых моих установок.

Я должен сказать, что 32 секунды на самом деле достаточно хороши. Это не будет намного быстрее с традиционным оборудованием. Мой новый Lenovo T530 занимает такое же количество времени, чтобы загрузиться в устаревшем режиме. С новым микро SSD, который я недавно установил, и Ubuntu в режиме UEFI, он до 15 секунд не нажал кнопку питания для входа в систему. По-прежнему кажется, что он тратит 5 секунд во время публикации, но абсолютно не тратит время на запуск реальной операционной системы. Микро SSD имеет скорость передачи 280 Мбайт / с, может быть 500 Мбайт / с SSD может сделать это до 7 секунд. Но разработчикам действительно сокращать время загрузки pre OS (POST, а что нет).

Что касается профилирования загрузки и параллелизма между командами. Эти данные можно рассматривать как датированные или, в конечном итоге, мифы. Я помню, что автоматическое загрузочное профилирование или что-то, что сделало загрузочный профилирование абсолютно лишним, было добавлено в Linux или в базовую систему несколько лет назад, с тех пор я больше не использовал профилирование загрузки после установки нового пакета ядра. Параметр параллелизма оболочки, как говорили, нарушал вещи, но с Systemd и Upstart он тоже должен быть лишним и не должен иметь положительного эффекта.

71
задан 31 October 2010 в 14:59

79 ответов

Таинственный амперсанд «& amp;» суффикс, кажется, заставляет терминал поместить процесс в фоновый режим ... (но я не уверен, что там происходит).

Он делает, и часто то, что вы хотите. Если вы забыли использовать & amp ;, вы можете приостановить программу с помощью ctrl-z, затем поместите ее в фоновом режиме с помощью команды bg и продолжите использовать эту оболочку.

Процесс 'stdin, stdout и stderr все еще подключены к терминалу; вы можете перенаправить их из / в / dev / null или любой другой файл (например, сохранить выходной журнал где-нибудь):

  some-program & lt; / dev / null & amp; gt;  / dev / null & amp;  # & amp; & gt; файл является bash для 1 & gt; файл 2 & amp; 1  

Вы можете увидеть процесс в заданиях, вернуть его на передний план (команда fg) и отправить его сигналы (команда kill).

Некоторые графические программы будут отсоединены от терминала; если это так, когда вы запускаете команду «обычно», вы заметите, что она запускает графическую программу и «завершает».


Вот короткий script , вы можете поместить его в ~ / bin , который я назвал runbg:

  #! / bin / bash [$ # -eq 0]  & Amp; & Amp;  {# $ # - количество аргументов args echo "$ (basename $ 0): отсутствует команда" & gt; & amp; 2 exit 1} prog = "$ (который" $ 1 ")" # см. ниже [-z "$ prog"] & amp;  ; & амп;  {echo "$ (basename $ 0): неизвестная команда: $ 1" & gt; & amp; 2 exit 1} shift # удалить $ 1, теперь $ prog, из args tty -s & amp; & amp; & amp;  exec & lt; / dev / null #, если stdin является терминалом, перенаправление с нулевого tty -s & amp; 1 & amp; & amp;  exec & gt; / dev / null #, если stdout является терминалом, перенаправляет на null tty -s & amp; 2 & amp; & amp;  exec 2 & gt; 1 # stderr в stdout (который может быть не равен нулю) "$ prog" "$ @" & amp;  # $ @ - все args  

Я просматриваю программу ($ prog) перед перенаправлением, поэтому можно сообщить об ошибках в ее местонахождении. Запустите его как «runbg your-command args ...»; вы можете перенаправить stdout / err в файл, если вам нужно где-то сохранить выход.

За исключением перенаправления и обработки ошибок, это эквивалентно ответу htorque .

25
ответ дан 7 August 2018 в 22:32

Это работает даже внутри скрипта (как и псевдонимы, трейлер «& amp;» обычно не разрешен в сценариях, потому что они не являются интерактивными):

  bash -i & gt; / dev /  null 2 ​​& amp; 1 & lt; & lt; nohup gedit & amp;   
0
ответ дан 10 August 2018 в 10:40

Это сработало для меня:

  $ (nohup gedit 2 & gt; / dev / null & amp;)  
1
ответ дан 10 August 2018 в 10:40

Чтобы запустить приложение и отсоединить его от запущенного терминала, используйте & amp;!.

  firefox & amp ;!   
18
ответ дан 10 August 2018 в 10:40

Использовать nohup

nohup - это программа, которая запускает заданную команду с игнорируемыми сигналами зависания, так что команда может продолжать работать в фоновом режиме после его родительского процесса завершается. См. Справочную страницу

Например:

  nohup gedit something  
20
ответ дан 10 August 2018 в 10:40

Как выяснилось много людей, nohup - это то, что нужно учитывать. Но nohup stills остается открытым на терминале и отображает активность программы на терминале, который раздражает. После этого вы можете просто закрыть терминал, чтобы этого избежать. Я обнаружил очень простой способ, который я использую.

  nohup gedit & amp;  exit  

И все. Он открывает gedit и закрывает терминал при запуске gedit. Поскольку теперь gedit не связан с терминалом, он остается активным.

0
ответ дан 10 August 2018 в 10:40

Это сработало для меня:

  $ (some-program & amp;) & gt; / dev / null # Примеры: $ (gedit & amp;) & gt; / dev /  null $ (google-chrome & amp;) & gt; / dev / null  
0
ответ дан 10 August 2018 в 10:40

Откройте терминал, введите экран , введите команду, которую вы хотите запустить, закройте терминал. Программа должна продолжать работать в сеансе GNU Screen .

4
ответ дан 10 August 2018 в 10:40

Предположим, что gedit - программа, которую вы хотите запустить отдельно (aka. «disown», «disentangle», «disouple»). Существуют разные способы в зависимости от того, что вы хотите сделать точно:

Программа уже запущена

Отключено:

disown -h is путь, если вы хотите сделать это с уже запущенной программой (т. е. если вы забыли nohup ). Сначала вам нужно остановить его, используя Ctrl + Z. Затем вы можете вставить в скобку с помощью bg [jobId] (например, bg 1 ). Вы получаете список текущих заданий с их jobId с помощью заданий . После этого вы можете отделить его от терминала, используя disown -h% [jobId] . Пример терминальной сессии:

  confus @ confusion: ~ $ gedit ^ Z [1] + Остановлен gedit confus @ confusion: ~ $ jobs [1] + Остановлен gedit confus @ confusion: ~ $ bg 1  [1] + gedit & amp;  confus @ confusion: ~ $ disown -h% 1 confus @ confusion: ~ $ exit  

Программа еще не запущена

nohup

nohup не всегда присутствует на всех машинах. Если вы знаете, что хотите разделить заранее, вы должны использовать:

  nohup gedit & amp;   

Возможно, вам также захочется перенаправить вывод оболочки, а ваша программа - на источник псевдослучайного кода, так что: nohup ./myprogram & gt; foo.out 2 & gt; bar.err & lt; / dev / null & amp; . Вы хотите перенаправить вывод, чтобы он не был раздражен им или использовать его позже. Нулевой вход может помочь предотвратить hickups в ssh a.

Subhell:

Вы можете добиться подобного эффекта с помощью

  confus @ confusion  : ~ $ (geany 2 & amp; 1 / dev / null & amp;)  

Скобки открывают новую подоболочку для запуска gedit. 2 & amp; 1 / dev / null перенаправляет вывод оболочки в никуда (подавление вывода). И & amp; в конце ставит процесс в фоновом режиме.

Терминальное мультиплексирование

Также терминальное мультиплексирование с использованием экрана или бёб . Вы в основном запускаете программу самостоятельно. Я действительно могу рекомендовать byobu по другим причинам. Ниже приведен список ярлыков boybu, которые могут пригодиться для ваших первых шагов:

Полезно:

  • F2 Создать новое окно
  • F3 Перейти к следующему окну
  • F4 Переместить в предыдущее окно
  • F6 Отсоединить от сеанса и выйти
  • Shift-F6 Отсоединить от сеанса, но не logout
  • F7 Введите режим прокрутки / поиска
  • Ctrl-F5 Подключите все сокеты или агенты SSH / GPG

Менее полезно:

Shift-F2 Разделить экран по горизонтали - Ctrl-F2 Сдвинуть экран по вертикали - Shift-F3 Переместить фокус на следующий раскол - Shift-F4 Переместить фокус на предыдущий раскол - Shift-F5 Свернуть все расщепления - - F5 Обновить все уведомления о состоянии - F8 Переименовать текущее окно - F9 Запустить меню настройки Byobu - F12 Экран исчезновения экрана GNU - Alt-Pageup Прокрутите страницу назад по этому окну - Alt-Pagedown Прокрутите страницу вперед по истории этого окна - Ctrl-a-! Включите или отключите все комбинации клавиш Byobu -

. «De» и другие

в - хороший полезный инструмент для запуска команды в запланированное время. Это может быть «неправильно использовано» для отсоединения команды от оболочки:

  echo './myprogram myoption1 myoption2' |  теперь  

Также вы можете посмотреть setsid и start-stop-daemon , но другие методы должны быть достаточными.

79
ответ дан 10 August 2018 в 10:40

Таинственный амперсанд «& amp;» суффикс, кажется, заставляет терминал поместить процесс в фоновый режим ... (но я не уверен, что там происходит).

Он делает, и часто то, что вы хотите. Если вы забыли использовать & amp ;, вы можете приостановить программу с помощью ctrl-z, затем поместите ее в фоновом режиме с помощью команды bg и продолжите использовать эту оболочку.

Процесс 'stdin, stdout и stderr все еще подключены к терминалу; вы можете перенаправить их из / в / dev / null или любой другой файл (например, сохранить выходной журнал где-нибудь):

  some-program & lt; / dev / null & amp; gt;  / dev / null & amp;  # & amp; & gt; файл является bash для 1 & gt; файл 2 & amp; 1  

Вы можете увидеть процесс в заданиях, вернуть его на передний план (команда fg) и отправить его сигналы (команда kill).

Некоторые графические программы будут отсоединены от терминала; если это так, когда вы запускаете команду «обычно», вы заметите, что она запускает графическую программу и «завершает».


Вот короткий script , вы можете поместить его в ~ / bin , который я назвал runbg:

  #! / bin / bash [$ # -eq 0]  & Amp; & Amp;  {# $ # - количество аргументов args echo "$ (basename $ 0): отсутствует команда" & gt; & amp; 2 exit 1} prog = "$ (который" $ 1 ")" # см. ниже [-z "$ prog"] & amp;  ; & амп;  {echo "$ (basename $ 0): неизвестная команда: $ 1" & gt; & amp; 2 exit 1} shift # удалить $ 1, теперь $ prog, из args tty -s & amp; & amp; & amp;  exec & lt; / dev / null #, если stdin является терминалом, перенаправление с нулевого tty -s & amp; 1 & amp; & amp;  exec & gt; / dev / null #, если stdout является терминалом, перенаправляет на null tty -s & amp; 2 & amp; & amp;  exec 2 & gt; 1 # stderr в stdout (который может быть не равен нулю) "$ prog" "$ @" & amp;  # $ @ - все args  

Я просматриваю программу ($ prog) перед перенаправлением, поэтому можно сообщить об ошибках в ее местонахождении. Запустите его как «runbg your-command args ...»; вы можете перенаправить stdout / err в файл, если вам нужно где-то сохранить выход.

За исключением перенаправления и обработки ошибок, это эквивалентно ответу htorque .

25
ответ дан 10 August 2018 в 10:40

Чтобы запустить приложение и отсоединить его от запущенного терминала, используйте & amp;!.

  firefox & amp ;!   
18
ответ дан 13 August 2018 в 17:12
  • 1
    Полезно знать, но это похоже на zsh-only. В bash вам нужно будет вручную запустить disown & lt; pid-of-command & gt; после запуска команды в фоновом режиме. – htorque 31 October 2010 в 16:29
  • 2
    Интересно ... Я собираюсь заглянуть в zsh, но как новичок в Linux, я буду придерживаться bash на данный момент ... Спасибо – Peter.O 1 November 2010 в 06:55
  • 3
    что делает восклицательный знак? – nutty about natty 13 January 2013 в 23:30
  • 4
    ! будет разорвать процесс приложения из терминального процесса, чтобы вы могли закрыть терминал без приложения, которое было запущено после закрытия. Кажется, это вещь zsh, но она удобна. – Rick 14 January 2013 в 20:21
  • 5
    Но это сработало в bash слишком @htorque .... Так что я думаю, это не проблема. – Jasser 22 March 2016 в 13:16

Это работает даже внутри скрипта (как и псевдонимы, трейлер «& amp;» обычно не разрешен в сценариях, потому что они не являются интерактивными):

  bash -i & gt; / dev /  null 2 ​​& amp; 1 & lt; & lt; nohup gedit & amp;   
0
ответ дан 13 August 2018 в 17:12

Это сработало для меня:

  $ (nohup gedit 2 & gt; / dev / null & amp;)  
1
ответ дан 13 August 2018 в 17:12

Откройте терминал, введите экран , введите команду, которую вы хотите запустить, закройте терминал. Программа должна продолжать работать в сеансе GNU Screen .

4
ответ дан 13 August 2018 в 17:12
  • 1
    Что такое GNU Screen? – Oxwivi 31 May 2011 в 20:11
  • 2
    Если я получу идею правильно, это своего рода оконный менеджер для командной строки. Он позволяет запускать более одной программы одновременно в сеансе интерфейса командной строки. – RobinJ 31 May 2011 в 20:14
  • 3
    Бёб? – Oxwivi 31 May 2011 в 20:38
  • 4
    Что-то вроде этого, только Byobu проще в использовании. Если я не ошибаюсь, Byobu - просто более простой интерфейс для GNU Screen. – RobinJ 31 May 2011 в 20:39

Это сработало для меня:

  $ (some-program & amp;) & gt; / dev / null # Примеры: $ (gedit & amp;) & gt; / dev /  null $ (google-chrome & amp;) & gt; / dev / null  
0
ответ дан 13 August 2018 в 17:12

Как выяснилось много людей, nohup - это то, что нужно учитывать. Но nohup stills остается открытым на терминале и отображает активность программы на терминале, который раздражает. После этого вы можете просто закрыть терминал, чтобы этого избежать. Я обнаружил очень простой способ, который я использую.

  nohup gedit & amp;  exit  

И все. Он открывает gedit и закрывает терминал при запуске gedit. Поскольку теперь gedit не связан с терминалом, он остается активным.

0
ответ дан 13 August 2018 в 17:12

Использовать nohup

nohup - это программа, которая запускает заданную команду с игнорируемыми сигналами зависания, так что команда может продолжать работать в фоновом режиме после его родительского процесса завершается. См. Справочную страницу

Например:

  nohup gedit something  
20
ответ дан 13 August 2018 в 17:12
  • 1
    Что nohup ? Пожалуйста, дополните. – Oxwivi 31 May 2011 в 17:15
  • 2
    nohup - это программа, которая запускает заданную команду с игнорируемыми сигналами зависания, так что команда может продолжать работать в фоновом режиме после завершения ее родительского процесса. См. Справочную страницу – Florian Diesch 31 May 2011 в 17:23
  • 3
    На самом деле, я думаю, что мой ответ здесь неверен. По дальнейшей мысли, nohup следует использовать в этом сценарии. – boehj 31 May 2011 в 17:26
  • 4
    Когда интерактивная оболочка получает сигнал SIGHUP, может отправлять (или нет, в зависимости от настроек) сигнал SIGHUP всем своим дочерним элементам. Это может случиться (или нет, снова), когда терминал закрыт. Ребенок, не готовый обработать такой сигнал, будет выполнять действие по умолчанию, то есть выйти. Приложение nohup отключено bash) не позволяет сигналу достичь приложения. – enzotib 31 May 2011 в 17:33
  • 5
    Одно дело быть осторожным в том, что nohup создает файл в текущем каталоге с именем nohup.out . Для получения дополнительной информации см. Справочную страницу . Поэтому я предпочитаю отказаться от и за то, что disown работает после запуска gedit . – Flimm 31 May 2011 в 19:17

Предположим, что gedit - программа, которую вы хотите запустить отдельно (aka. «disown», «disentangle», «disouple»). Существуют разные способы в зависимости от того, что вы хотите сделать точно:

Программа уже запущена

Отключено:

disown -h is путь, если вы хотите сделать это с уже запущенной программой (т. е. если вы забыли nohup ). Сначала вам нужно остановить его, используя Ctrl + Z. Затем вы можете вставить в скобку с помощью bg [jobId] (например, bg 1 ). Вы получаете список текущих заданий с их jobId с помощью заданий . После этого вы можете отделить его от терминала, используя disown -h% [jobId] . Пример терминальной сессии:

  confus @ confusion: ~ $ gedit ^ Z [1] + Остановлен gedit confus @ confusion: ~ $ jobs [1] + Остановлен gedit confus @ confusion: ~ $ bg 1  [1] + gedit & amp;  confus @ confusion: ~ $ disown -h% 1 confus @ confusion: ~ $ exit  

Программа еще не запущена

nohup

nohup не всегда присутствует на всех машинах. Если вы знаете, что хотите разделить заранее, вы должны использовать:

  nohup gedit & amp;   

Возможно, вам также захочется перенаправить вывод оболочки, а ваша программа - на источник псевдослучайного кода, так что: nohup ./myprogram & gt; foo.out 2 & gt; bar.err & lt; / dev / null & amp; . Вы хотите перенаправить вывод, чтобы он не был раздражен им или использовать его позже. Нулевой вход может помочь предотвратить hickups в ssh a.

Subhell:

Вы можете добиться подобного эффекта с помощью

  confus @ confusion  : ~ $ (geany 2 & amp; 1 / dev / null & amp;)  

Скобки открывают новую подоболочку для запуска gedit. 2 & amp; 1 / dev / null перенаправляет вывод оболочки в никуда (подавление вывода). И & amp; в конце ставит процесс в фоновом режиме.

Терминальное мультиплексирование

Также терминальное мультиплексирование с использованием экрана или бёб . Вы в основном запускаете программу самостоятельно. Я действительно могу рекомендовать byobu по другим причинам. Ниже приведен список ярлыков boybu, которые могут пригодиться для ваших первых шагов:

Полезно:

  • F2 Создать новое окно
  • F3 Перейти к следующему окну
  • F4 Переместить в предыдущее окно
  • F6 Отсоединить от сеанса и выйти
  • Shift-F6 Отсоединить от сеанса, но не logout
  • F7 Введите режим прокрутки / поиска
  • Ctrl-F5 Подключите все сокеты или агенты SSH / GPG

Менее полезно:

Shift-F2 Разделить экран по горизонтали - Ctrl-F2 Сдвинуть экран по вертикали - Shift-F3 Переместить фокус на следующий раскол - Shift-F4 Переместить фокус на предыдущий раскол - Shift-F5 Свернуть все расщепления - - F5 Обновить все уведомления о состоянии - F8 Переименовать текущее окно - F9 Запустить меню настройки Byobu - F12 Экран исчезновения экрана GNU - Alt-Pageup Прокрутите страницу назад по этому окну - Alt-Pagedown Прокрутите страницу вперед по истории этого окна - Ctrl-a-! Включите или отключите все комбинации клавиш Byobu -

. «De» и другие

в - хороший полезный инструмент для запуска команды в запланированное время. Это может быть «неправильно использовано» для отсоединения команды от оболочки:

  echo './myprogram myoption1 myoption2' |  теперь  

Также вы можете посмотреть setsid и start-stop-daemon , но другие методы должны быть достаточными.

79
ответ дан 13 August 2018 в 17:12
  • 1
    Совет. Если есть только одно задание, идентификатор задания является необязательным, например. вместо bg% 1 вы можете просто ввести bg . – MasterMastic 15 March 2016 в 16:51

Таинственный амперсанд «& amp;» суффикс, кажется, заставляет терминал поместить процесс в фоновый режим ... (но я не уверен, что там происходит).

Он делает, и часто то, что вы хотите. Если вы забыли использовать & amp ;, вы можете приостановить программу с помощью ctrl-z, затем поместите ее в фоновом режиме с помощью команды bg и продолжите использовать эту оболочку.

Процесс 'stdin, stdout и stderr все еще подключены к терминалу; вы можете перенаправить их из / в / dev / null или любой другой файл (например, сохранить выходной журнал где-нибудь):

  some-program & lt; / dev / null & amp; gt;  / dev / null & amp;  # & amp; & gt; файл является bash для 1 & gt; файл 2 & amp; 1  

Вы можете увидеть процесс в заданиях, вернуть его на передний план (команда fg) и отправить его сигналы (команда kill).

Некоторые графические программы будут отсоединены от терминала; если это так, когда вы запускаете команду «обычно», вы заметите, что она запускает графическую программу и «завершает».


Вот короткий script , вы можете поместить его в ~ / bin , который я назвал runbg:

  #! / bin / bash [$ # -eq 0]  & Amp; & Amp;  {# $ # - количество аргументов args echo "$ (basename $ 0): отсутствует команда" & gt; & amp; 2 exit 1} prog = "$ (который" $ 1 ")" # см. ниже [-z "$ prog"] & amp;  ; & амп;  {echo "$ (basename $ 0): неизвестная команда: $ 1" & gt; & amp; 2 exit 1} shift # удалить $ 1, теперь $ prog, из args tty -s & amp; & amp; & amp;  exec & lt; / dev / null #, если stdin является терминалом, перенаправление с нулевого tty -s & amp; 1 & amp; & amp;  exec & gt; / dev / null #, если stdout является терминалом, перенаправляет на null tty -s & amp; 2 & amp; & amp;  exec 2 & gt; 1 # stderr в stdout (который может быть не равен нулю) "$ prog" "$ @" & amp;  # $ @ - все args  

Я просматриваю программу ($ prog) перед перенаправлением, поэтому можно сообщить об ошибках в ее местонахождении. Запустите его как «runbg your-command args ...»; вы можете перенаправить stdout / err в файл, если вам нужно где-то сохранить выход.

За исключением перенаправления и обработки ошибок, это эквивалентно ответу htorque .

25
ответ дан 13 August 2018 в 17:12
  • 1
    Хорошо, спасибо ... Кажется, что ctrl-z (suspend) снова возвращает мне доступ к командной строке, но затушевывает GUI, пока я не выдаю bg , который кажется отменить его. (имеет смысл) ... Есть еще одна команда, с помощью которой я могу отсоединить графический интерфейс ... Ага! Теперь я понимаю, что вы подразумеваете под sighals (kill command) ... (интересные вещи эти сигналы). Я использовал фрагмент кода, чтобы сделать dd постепенно выводить его статистику. и он использовал kill + a СИГНАЛ ... Есть ли специальный СИГНАЛ для отсоединения «задания»? – Peter.O 31 October 2010 в 16:41
  • 2
    Я просто заметил ваш комментарий к ответу Рика ... Я попробовал отменить задания -p gedit`` и, похоже, удалить работу ... (но я получил системные сообщения в терминале, когда я вручную закрытый gedit ... но я думаю, что на данный момент у меня есть прикрученный терминал ... слишком много экспериментирует :( – Peter.O 31 October 2010 в 16:51
  • 3
    @fred: Работа управляется оболочкой, поэтому никакой сигнал не может контролировать это. Вы можете найти, что лучше всего запустить несколько оболочек - несколько графических терминалов позволяют использовать вкладки, и вы можете использовать экран или tmux. – user 31 October 2010 в 16:52
  • 4
    @fred: лучше не запускать jobs -p command , если у вас есть несколько экземпляров одной команды, работающей в фоновом режиме за раз. вы можете использовать jobs , чтобы найти правильный идентификатор задания, а затем выполнить задания -p & lt; job-id & gt; , чтобы получить PID задания. Лично я считаю, что версия с подоболочкой намного проще. ;-) – htorque 31 October 2010 в 17:22
  • 5
    @htorque, fred: вы можете запустить disout без параметров, чтобы отключить последнюю работу: gedit & amp; открестился – user 31 October 2010 в 17:32

Другие вопросы по тегам:

Похожие вопросы: