Обложка канала

ServerAdmin.ru

12437 @srv_admin

Авторская информация о системном администрировании.

ServerAdmin.ru

4 года назад
Открыть в
​​Управление фоновыми процессами в Linux При работе в консоли Linux любой процесс в обычном режиме запускается в "foreground", в интерактивном режиме на переднем плане. Им можно управлять через терминал. При этом делать что-то параллельно затруднительно. Необходимо открыть ещё один терминал. Чтобы запустить команду в фоновом режиме (background), можно добавить в конец знак &: # tar czvf sites.tar.gz /web/sites & Команда будет запущена в фоне. Посмотреть список подобных задач можно с помощью команды jobs: # jobs [1]+ Running         tar czvf sites.tar.gz /web/sites & Если вы запустили процесс в обычном режиме, но хотите его отправить в фон, то необходимо нажать в терминале сочетание клавиш CTRL+Z. Процесс будет остановлен. Проверить его состояние можно так же через jobs: # ping 127.0.0.1 ^Z [1]+ Stopped         ping 127.0.0.1 # jobs [1]+ Stopped         ping 127.0.0.1 Вернуть команду из остановленного состояния можно либо в фоновый режим с помощью bg (background), либо на передний план с помощью fg (foreground). # bg %ping # fg %ping Здесь в качестве идентификатора использовалось начало названия команды ping, но можно было указать идентификатор %1 для первой команды, %2 для второй и т.д. Кстати, не советую ping отправлять в фон. Из него потом будет немного затруднительно выйти, так как эта команда даже из bg выводит информацию на консоль. С непривычки не понятно, как это остановить. Предлагаю самим попробовать и оценить результат. Необходимо помнить, что команды в jobs привязаны к конкретному терминалу. Если открыть второй, то там не увидите задачи первого. Это не аналог запуска команд в screen или tmux. При разрыве связи по SSH или отключении от консоли, фоновые задачи тоже будут завершены. Их, кстати, можно посмотреть ещё вот так: # ps T Ключ T означает привязку к конкретной консоли. Может показаться, что jobs, bg и fg это какой-то архаизм, но на практике, когда часто работаешь в консоли, периодически используешь. Особенно, когда что-то сжимаешь, распаковываешь, дампишь базу или скрипт какой-то запускаешь. Это быстрее и удобнее, чем открывать и перемещаться в другую консоль. Чтобы не мешал вывод, который будет из bg пробиваться в консоль, можно его перенаправить >/dev/null 2>&1. #terminal #linux