Ответ
Амперсанд (&) в конце команды в Linux/Unix-оболочках используется для запуска процесса в фоновом режиме (background). Это освобождает текущую сессию терминала (shell), позволяя продолжать вводить команды, пока процесс выполняется.
Базовый пример:
# Запускает длительную команду (например, компиляцию) в фоне
make build &
После выполнения этой команды вы сразу получите обратно приглашение командной строки и PID (идентификатор процесса).
Ключевые аспекты работы с фоновыми задачами:
- Управление задачами:
jobs -l— показать список фоновых задач текущей сессии.fg %1— вернуть задачу с номером 1 на передний план (foreground).bg %1— возобновить остановленную задачу №1 в фоне.
- Перенаправление вывода: Фоновый процесс все еще может писать в STDOUT/STDERR, что может "засорять" терминал. Лучше сразу перенаправить вывод:
some_script.sh > script.log 2>&1 & - Независимость от терминала: Процесс, запущенный через
&, все еще привязан к сессии терминала. Если терминал закрыть, процесс, скорее всего, получит сигнал SIGHUP и завершится. Для полного отсоединения используют:nohup command &— игнорирует сигнал HUP, вывод по умолчанию идет в файлnohup.out.disownпосле запускаcommand &— удаляет задачу из списка задач текущей оболочки.- Менеджеры процессов (systemd, supervisord) или терминальные мультиплексоры (screen, tmux).