Добавить в корзинуПозвонить
Найти в Дзене
ABC Fedora

Магия терминала: Как спасти запущенный процесс, если пора выключать ПК

Знакомая ситуация: вы подключились к серверу, запустили загрузку тяжеловесного дампа базы данных, компиляцию кода или перенос архива, и вдруг понимаете — процесс займет несколько часов. Использовать nohup или мультиплексоры вроде tmux вы заранее забыли, а терминал нужно закрыть прямо сейчас. Если просто нажать крестик или разорвать SSH-соединение, система безжалостно убьет ваш процесс (отправив ему сигнал SIGHUP). Но ситуацию можно спасти прямо на лету. Не паникуйте, прерывать долгую работу не придется.
Вот классическое комбо для перехвата управления: Визуальный нюанс: Если ваша утилита активно пишет логи или прогресс-бар на экран, она продолжит это делать даже из фона, перекрывая вводимые вами символы. Не обращайте внимания на бегущие цифры — терминал вас слышит. Просто наберите exit вслепую и нажмите Enter. Терминал закроется, а процесс останется жить на сервере. Вот сценарий применения этого трюка — перенос медленных и нудных задач на плечи вашего VPS. Представьте: вы нашли нужный
Оглавление

Знакомая ситуация: вы подключились к серверу, запустили загрузку тяжеловесного дампа базы данных, компиляцию кода или перенос архива, и вдруг понимаете — процесс займет несколько часов. Использовать nohup или мультиплексоры вроде tmux вы заранее забыли, а терминал нужно закрыть прямо сейчас.

Если просто нажать крестик или разорвать SSH-соединение, система безжалостно убьет ваш процесс (отправив ему сигнал SIGHUP). Но ситуацию можно спасти прямо на лету.

Что делать, если команда уже запущена?

Не паникуйте, прерывать долгую работу не придется.
Вот классическое комбо для перехвата управления:

  1. Приостановите выполнение запущенной команды нажатием сочетания
    <
    Ctrl + Z >
    система "заморозит" процесс, и вам вернется привычная командная строка.
  2. Отправьте процесс в фоновый режим, введя команду:
    >
    bg
    Теперь ваша программа снова работает, но уже "за кадром", не блокируя консоль.
  3. «Отвяжите» процесс от текущего терминала,
    чтобы закрытие окна его не убило:
    >
    disown -h
    Флаг -h дает вашей задаче иммунитет к обрыву связи. С этого момента процесс становится самостоятельным и больше не зависит от того, открыта ваша сессия или нет.
Визуальный нюанс: Если ваша утилита активно пишет логи или прогресс-бар на экран, она продолжит это делать даже из фона, перекрывая вводимые вами символы. Не обращайте внимания на бегущие цифры — терминал вас слышит. Просто наберите exit вслепую и нажмите Enter. Терминал закроется, а процесс останется жить на сервере.

Практический пример:
Делегируйте рутину серверу

Вот сценарий применения этого трюка — перенос медленных и нудных задач на плечи вашего VPS.

Представьте: вы нашли нужный образ системы или гигантский архив
(например, driver.zip), но сервер-источник отдает его с мучительно низкой скоростью. Зачем держать домашний компьютер или ноутбук включенным всю ночь, сжигая электричество и слушая шум кулеров?

Ваш план действий:

  1. Подключаетесь к своему VPS по SSH и запускаете скачивание (wget или curl).
    Например:
    >
    curl -o driver.zip http://example.com/huge-driver-pack.zip
  2. Понимаете, что это надолго, и применяете комбинацию:
    Ctrl+Z -> bg -> disown -h
  3. Со спокойной душой закрываете окно терминала, выключаете ПК и ложитесь спать.

Пока вы отдыхаете, ваш удаленный сервер делает всю "грязную" работу.

Если периодически проверять директорию командой
> ls -l , можно увидеть, как размер driver.zip методично увеличивается в фоне байт за байтом.
ls -la  процесс загрузки...
ls -la процесс загрузки...

А утром, заварив кофе, вы просто открываете локальный терминал и забираете уже полностью готовый файл на свой компьютер одной элегантной командой:

> scp -p22 user@vps:/путь/к/загрузкам/driver.zip /локальная/папка/

Минимум усилий, максимальная эффективность!