Предположим gedit
, что программа, которую вы хотите запустить, отсоединена (она называется «отречен», «распутан», «отделен»). Существуют разные способы, в зависимости от того, что именно вы хотите сделать:
Программа уже запущена
открестился:
disown -h
это путь, если вы хотите сделать это с уже запущенной программой (то есть, если вы забыли об nohup
этом). Сначала вы должны остановить это с помощью Ctrl+ Z. Затем вы можете положить в фоновом режиме, используя bg [jobId]
(например bg 1
). Вы получаете список запущенных заданий с их идентификатором 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 &
. Вы хотите перенаправить вывод, чтобы он не раздражал его или использовал его позже. Нулевой ввод может помочь предотвратить взлеты в ssh и тому подобное.
подоболочка:
Вы можете достичь аналогичного эффекта,
$ (geany >/dev/null 2>&1 &)
Скобки открывают новую подоболочку для запуска gedit. >/dev/null 2>&1
Перенаправляет вывод оболочки в никуда (подавляя вывод). И &
в конце ставит процесс в фоновом режиме.
Терминальное мультиплексирование
Также терминальное мультиплексирование с использованием экрана или бёбу . Вы в основном запускаете программу в собственном терминале. Я действительно могу рекомендовать Бёбу и по другим причинам. Ниже приведен список сочетаний клавиш, которые могут пригодиться для ваших первых шагов:
Полезное:
- 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 Клавиша Escape экрана GNU
- Alt-Pageup Прокрутите историю этого окна
- Alt-Pagedown Прокрутите вперед историю этого окна
- Ctrl-a-! Включить или выключить все сочетания клавиш Бёбу
'At' демон и другие
at
хороший полезный маленький инструмент для запуска команды в назначенное время. Может быть «неправильно использовано», чтобы отделить команду от оболочки:
echo './myprogram myoption1 myoption2' | at now
Также вы можете посмотреть setsid
и start-stop-daemon
, но других методов должно быть достаточно.