Предположим, что gedit
- это программа, которую вы хотите запустить отдельно (aka. "disowned", "disentangled", "disoupled"). Существуют разные способы в зависимости от того, что вы хотите сделать именно:
Программа уже запущена
открестился:
disown -h
- это путь, если вы хотите сделать это с уже запущенной программой (т. е. если вы забыли nohup
it). Сначала вам нужно остановить его, используя Ctrl + Z . Затем вы можете ввести запятую в bg [jobId]
(например, bg 1
). Вы получаете список рабочих заданий с их jobId, используя jobs
. После этого вы можете отделить его от терминала, используя disown -h %[jobId]
. Пример сеанса терминала:
$ gedit
^Z
[1]+ Stopped gedit
$ jobs
[1]+ Stopped gedit
$ bg 1
[1]+ gedit &
$ disown -h %1
$ exit
Программа еще не запущена
поЬир
nohup
не всегда присутствует на всех машинах. Если вы знаете, что хотите разделить заранее, вы должны использовать:
nohup gedit &
Возможно, вам также захочется перенаправить вывод оболочки, а ваша программа - на источник псевдослучайных данных, поэтому: nohup ./myprogram > foo.out 2> bar.err < /dev/null &
. Вы хотите перенаправить вывод, чтобы он не был раздражен им или использовать его позже. Нулевой ввод может помочь предотвратить hickups в ssh и такой.
подоболочка:
Вы можете добиться аналогичного эффекта на
$ (geany >/dev/null 2>&1 &)
Скобки открывают новую подоболочку для запуска gedit. >/dev/null 2>&1
перенаправляет вывод оболочки в никуда (подавление вывода). И &
в конце ставит процесс в фоновом режиме.
Терминальное мультиплексирование
Также терминальное мультиплексирование с использованием экрана или бёб . Вы в основном запускаете программу самостоятельно. Я действительно могу рекомендовать byobu по другим причинам. Ниже приведен список ярлыков boybu, которые могут пригодиться для ваших первых шагов:
Полезное:
-
F2 Создать новое окно
-
F3 Переход к следующему окну
-
F4 Переход к предыдущему окну
-
F6 Отсоединить от сеанса и выйти из системы
-
Shift-F6 Отсоединяться от сеанса, но не выходить из системы
-
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.
Демон 'at' и другие
at
- хороший полезный инструмент для запуска команды в запланированное время. Это может быть «неправильно использовано» для отсоединения команды от оболочки:
echo './myprogram myoption1 myoption2' | at now
Также вы можете посмотреть setsid
и start-stop-daemon
, но другие методы должны быть достаточными.