Что делает и подписывает & amp; в оболочке? [Дубликат]

Могу я просто добавить; люди всегда предполагают, что это компьютерная проблема, но если вы считаете своими руками (база 10), вы не можете получить (1/3+1/3=2/3)=true, если у вас нет бесконечности, чтобы добавить 0.333 ... в 0.333 ... так, как и с (1/10+2/10)!==3/10 в базе 2, вы обрезаете ее до 0,333 + 0,333 = 0,666 и, вероятно, округлите ее до 0,677, что также будет технически неточным.

Подсчитайте в тройном, а третья не проблема, может быть, какая-то гонка с 15 пальцами на каждой руке спросит, почему ваша десятичная математика была сломана ...

54
задан falsarella 22 February 2016 в 20:01
поделиться

3 ответа

97
ответ дан Bohemian 5 September 2018 в 10:30
поделиться

Если не указано иначе, команды переходят на передний план. У вас есть только один процесс «переднего плана», выполняющийся в одном сеансе оболочки. & Amp; символ указывает командам работать в фоновом процессе и немедленно возвращается в командную строку для дополнительных команд.

sh my_script.sh &

Фоновый процесс будет не оставаться в живых после закрытия сеанса оболочки , SIGHUP завершает все запущенные процессы. По умолчанию в любом случае. Если ваша команда работает долго или работает неограниченно (т. Е. Микросервис), вам нужно отложить ее без nohup, чтобы она оставалась бегущей после отключения от сеанса:

nohup sh my_script.sh &

EDIT: Появляется быть серой областью, касающейся закрытия фоновых процессов, когда & amp; используется. Просто имейте в виду, что оболочка может закрыть ваш процесс в зависимости от вашей ОС и локальных конфигураций (особенно на CENTOS / RHEL): https://serverfault.com/a/117157 .

4
ответ дан Timothy Jannace 5 September 2018 в 10:30
поделиться

Кроме того, вы можете использовать «& amp;» чтобы запускать много процессов через одно (1) ssh-соединения, чтобы поддерживать минимальное количество терминалов. Например, у меня есть один процесс, который прослушивает сообщения для извлечения файлов, второй процесс прослушивает сообщения для загрузки файлов: используя «& amp;» Я могу запускать обе службы в одном терминале через одно подключение ssh к моему серверу. ***** Я только понял, что эти процессы проходят через "& amp;" также будет «оставаться в живых» после закрытия сессии ssh! довольно аккуратно и полезно, если ваше соединение с сервером прерывается **

9
ответ дан Zack S 5 September 2018 в 10:30
поделиться