Фоновые процессы

Обычно для запуска команды необходимо ввести ее имя. В командной строке можно указать сколько угодно специальных символов, которые будут интерпретированы bash еще до запуска команды. Таким же образом можно запускать команды в фоновом режиме.

Важнейший и самый востребованный подстановочный символ &. Если указать его в конце командной строки, bash запустит программу в фоновом режиме. Это имеет смысл в первую очередь в случае, если на выполнение команды уходит много времени, чтобы можно было продолжать работу, не дожидаясь окончания выполнения такой программы.

find / -name '*sh' > result &
[1] 3345

Вышеуказанная команда ищет по всей файловой системе файлы, названия которых оканчиваются на sh. Список найденных файлов записывается в файле result. Поскольку команда выполняется в фоновом режиме, работу можно не прерывать. Вывод "1 3345" означает, что фоновый процесс имеет номер "PID 3345". Здесь PID означает идентификатор процесса (process ID). Номер PID интересен в том случае, если процесс был аварийно завершен командой kill. Номер в квадратных скобках – это номер фонового процесса, запущенного в bash. Как правило, этот номер не важен.

Если при запуске команды не поставлен символ &, не следует ни дожидаться окончания выполнения программы, ни принудительно завершать программу нажатием Ctrl+C. Гораздо лучше приостановить выполнение программы, нажав Ctrl+Z, а затем продолжить ее работу в виде фонового процесса с помощью команды bg.