Есть 2 ситуации: 1. команда уже запущена, а мысль о том, что её выполнение нужно оставить на попечение системы, отвязав от текущей сессии, пришла после; 2. команда ещё не запущена и мы хотим сделать её самостоятельной заранее.
1. Если команда уже запущена, то нажимаем CTRL+Z, тем самым остановив её выполнение:
apt-get update && apt-get upgrade -y
В кэше http://archive.ubuntu.com raring Release.gpg
В кэше http://security.ubuntu.com raring-security Release.gpg
В кэше http://archive.canonical.com raring Release.gpg
Получено:1 http://archive.ubuntu.com raring-updates Release.gpg [933 B]
26% [Ожидание заголовков] [2 Release 9 731 B/40,8 kB 24%] [Ожидание заголовков] [Ожидание заголовко�^Z
[1]+ Остановлено apt-get update
Затем, переводим её выполнение в фоновый режим командой bg и отвязываем от текущей сессии (удаляем из активных заданий) командой disown:
bg && disown
Теперь, можно нажимать CTRL+D, не опасаясь что обновление системы оборвётся при разлогинивании.
2.Более разумное решение — воспользоваться командой nohup, которая сразу сделает выполняемую задачу устойчивой к SIGHUP и по умолчанию сохранит выход stdout в файл nohup.out в текущей директории, что удобно, чтобы позднее проверить выполнилась ли данная задача или нет. Вывод, так-же может быть перенаправлен в произвольный файл стандартными средствами — знаком > после команды. Примеры:
nohup ping -c 1000 ya.ru &
nohup ping -c 1000 ya.ru > ping_`date +%d.%m.%y_%H.%M` &
В первом примере команда ping посылает 1000 запросов сайту ya.ru и записывает результаты в файл nohup.out в текущей директории.
Во втором примере команда ping посылает 1000 запросов сайту ya.ru и записывает результаты в файл, содержащий слово ping и текущие дату и время, находящийся в текущей директории.
Автор: Yar4e