Что означает " & " в конце команды linux?
Я системный администратор, и меня попросили запустить скрипт linux для очистки системы.
команда такая:
perl script.pl > output.log &
Итак, эта команда заканчивается на & знак, есть ли особый смысл в этом?
у меня есть базовые знания Shell но я никогда не видел этого раньше.
3 ответов:
The
&команда выполняется в фоновом режиме.С
man bash:Если команда завершается оператором управления & оболочка выполняет команду в фоновом режиме в подобласти. Панцирь не дожидаясь окончания команды, а статус возврата-0.
кроме того, вы можете использовать знак "&" для запуска многих процессов через одно (1) ssh-соединение, чтобы сохранить минимальное количество терминалов. Например, у меня есть один процесс, который прослушивает сообщения для извлечения файлов, второй процесс прослушивает сообщения для загрузки файлов: с помощью "&" я могу запускать обе службы в одном терминале через одно ssh-соединение с моим сервером.
*****Я только что понял, что эти процессы, проходящие через " & " будет также "остаться в живых"после закрытия ssh сессии! довольно аккуратно и полезно, если ваше соединение с сервером прерывается**
когда не сказано иначе команды берут на себя передний план. У вас есть только один "процесс" запущен в одном сеансе оболочки. Символ & указывает, что команды должны выполняться в фоновом режиме, и немедленно возвращается в командную строку для получения дополнительных команд.
sh my_script.sh &фоновый процесс будет не остаться в живых после закрытия сеанса оболочки. запустить завершает все запущенные процессы. По умолчанию в любом случае. Если ваша команда продолжительный или работает бесконечно (т. е.: микросервис) вам нужно pr-pend его с помощью nohup, чтобы он оставался запущенным после отключения от сеанса:
nohup sh my_script.sh &EDIT: там, кажется, есть серая область относительно закрытия фоновых процессов, когда & используется. Просто знайте, что оболочка мая закройте процесс в зависимости от вашей ОС и локальных конфигураций (особенно на CENTOS / RHEL): https://serverfault.com/a/117157.
Comments