Запуск программ в фоновом режиме с терминала

Я исправил его - мне пришлось следовать этим инструкциям с 2016 года. Мне пришлось создать ~/.config/fontconfig/conf.d/01-emoji.conf со следующим текстом:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
  <alias>
    <family>serif</family>
    <prefer>
      <family>Noto Color Emoji</family>
    </prefer>
  </alias>
  <alias>
    <family>sans-serif</family>
    <prefer>
      <family>Noto Color Emoji</family>
    </prefer>
  </alias>
  <alias>
    <family>monospace</family>
    <prefer>
      <family>Noto Color Emoji</family>
    </prefer>
  </alias>
</fontconfig>

Бит в первоначальных инструкциях об установке шрифта Ното был ненужным так как он установлен как часть 18.04 по умолчанию.

Затем запустите:

fc-cache -f -v

При следующем перезапуске Chrome имеет цвет emoji.

1
задан 6 June 2014 в 04:18

7 ответов

Вот два пути, с которыми я бы пошел. Во-первых, не запускать его с терминала; нажмите Alt + F2, чтобы открыть диалоговое окно запуска и запустите его там (без & amp;).

С терминала запустите

nm-applet &

Но НЕ закрывайте терминал самостоятельно , То есть, не нажимайте кнопку X для закрытия и не используйте File -> Exit из своей строки меню. Если вы закроете терминал таким образом, он отправит сигнал HUP (Hang UP) в bash, который будет работать внутри, что, в свою очередь, отправит сигнал HUP всем его дочерним элементам (поэтому nohup работает в этом случае). [!d4 ]

Вместо этого выйдите из оболочки, запустив exit или нажав Alt + D. bash затем отключит своих детей, а затем выйдет, оставив фоновый процесс все еще запущенным. И когда bash выходит, терминал потерял свой дочерний процесс, поэтому он тоже закроется.

Выполняя все это сразу:

nm-applet & exit
46
ответ дан 25 May 2018 в 14:04
  • 1
    Это восхитительно! Никогда не знал об этом, и вы, кажется, единственный человек, который упоминает об этом. Определенно, это мой любимый подход, когда в среде рабочего стола. Жаль, что я больше не могу повышать; – 7hi4g0 24 January 2015 в 10:01
  • 2
    Я попробовал это с другим приложением, и это не сработало: matlab & exit Выполнение работы с двумя отдельными командами хорошо работало: matlab & exit – MattKelly 11 November 2016 в 00:00
  • 3
    Мне было интересно, почему OP сказал, что закрытие терминала привело к сбою его фоновых программ. Я никогда не пытался закрыть терминал с помощью «x». в окне. – user1717828 29 March 2017 в 15:51
  • 4
    кнопка x убивает, что он не выполняет чистое завершение, выполняется команда exit. вы можете перенаправить кнопку x на команду exit вместо этого ... – Tim Baker 2 February 2018 в 11:35

Как вы указали, вы можете запустить

nohup nm-applet &  

, чтобы игнорировать конечный сигнал при закрытии терминала. Нет проблем с этим.

13
ответ дан 25 May 2018 в 14:04
  • 1
    Любые другие альтернативы? Только ради познания, а не для чего-то еще – OVERTONE 22 February 2012 в 06:38
  • 2
    В wikipedia ( ru.wikipedia.org/wiki/Nohup ) есть предложение использовать echo command | at now, который я не мог заставить его работать. – desgua 22 February 2012 в 06:45
  • 3
    Интересно, как это работает из пользовательского интерфейса при двойном щелчке значка или программы. – OVERTONE 23 February 2012 в 16:22

Одна вещь, которую не хватает многим другим, заключается в том, как отключить текущий процесс, который в настоящее время блокирует оболочку. В большинстве терминалов и оболочек Ctrl + Z останавливает текущий процесс и возвращает вас обратно к приглашению ввода. Затем вы можете выдать

bg

, чтобы отправить текущий процесс в фоновый режим. Issue

fg

вместо этого, чтобы вернуть текущий процесс на передний план.

EDIT: Более подробно в этом ответе я обнаружил позже.

10
ответ дан 25 May 2018 в 14:04

Используйте (exec PROGRAM &> /dev/null & ), чтобы разрешить PID подоболочки взять PROGRAM. Я несколько раз тестировал этот подход с несколькими различными программами. Закрытие исходного терминала не влияет на новоиспеченную программу

Маленькая демонстрация:

$ # this is before running
$ (exec firefox &> /dev/null &)
$ # and look, we still in side the terminal and can continue working
6
ответ дан 25 May 2018 в 14:04
  • 1
    Hmmm (exec firefox) висит терминал, пока я не выйду из Firefox ... и закрыв терминал SIGHUPs оболочкой и подоболочкой – kos 30 November 2015 в 15:48
  • 2
    Я отредактировал свой ответ. Протестировал его несколькими другими программами. Я не заметил, что firefox или другая программа висит на управляющем терминале в этой версии – Sergiy Kolodyazhnyy 7 August 2016 в 21:39
  • 3
    хорошо работает для меня – Zanna 21 August 2016 в 22:12

Я могу порекомендовать терминал byobu. Вы можете легко отсоединить ваш процесс, нажав клавишу F6.

2
ответ дан 25 May 2018 в 14:04

Хотя есть хорошие ответы выше, я хотел бы дать 2 цента о том, как я использую MATLAB в фоновом режиме.

sudo -b matlab

Тег -b sudo может запускать приложения в фоновом режиме. Вы также можете закрыть терминал после выполнения этой команды.

Возможно, несвязанный, но есть замечательный веб-сайт, который вы можете использовать для объяснения команд оболочки. http://explainshell.com/explain/8/sudo

1
ответ дан 25 May 2018 в 14:04

Я не знаю, как это правильно, но я просто начинаю другую сессию, оставляя предыдущий. Например, я управлял простым веб-сервером на моей малине. web.py. то я начинаю новый сеанс, оставив его в покое. это оно. он также полезен, так как вы все еще обновляетесь, хотя вы работаете на другом сеансе.

0
ответ дан 25 May 2018 в 14:04
  • 1
    Добро пожаловать в Ask Ubuntu! Я рекомендую изменить этот ответ, чтобы развернуть его с подробными сведениями о том, как это сделать. (См. Также Как написать хороший ответ? для общих советов о том, какие ответы наиболее ценны в Ask Ubuntu.) – David Foerster 6 July 2016 в 01:51

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

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