Почему некоторые программы возвращаются, будучи названным из терминала, в то время как другие просто возвращаются только с включением '&'

Программы как Skype и Tixati можно просто назвать от терминала, не добавляя & в конце их вызова. Почему этот не имеет место с Firefox. Мне просто любопытно, относительно каких программ я должен добавить & опция к.

5
задан 14 June 2015 в 08:10

3 ответа

Это зависит полностью от того, как программное обеспечение было записано, часто также в зависимости от намерения с ним.

Большая часть удара (= оболочка, терминал) утилиты предназначены, чтобы использоваться "синхронно" с ними, выполнение предназначено для приведения к результату; который мог бы требоваться для следующих команд в сценарии или ручной процедуре - если утилита (программа, программное обеспечение) отсоединения и оставят Вас при подсказке сразу, то Вы не будете знать, когда или доступен ли результат.

Skype обычно не используется в качестве командной строки "утилита", а скорее инструмент для обработки коммуникации (телефон или безотносительно). И затем довольно удобно, если это не блокирует терминал, если запущено оттуда.

Отсоединение от терминала:
https://superuser.com/questions/178587/how-do-i-detach-a-process-from-terminal-entirely

13
ответ дан 23 November 2019 в 08:38

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

Без него при запуске процесса от терминала необходимо будет ожидать до того процесса концы (или закрывается) перед способностью продолжить использовать терминал. Поэтому каждый часто запускает программы как command &, чтобы отправить их к фону и продолжать работать в том же терминале.

Для больше на различных операторах оболочки как & и что они делают, см. здесь .

9
ответ дан 23 November 2019 в 08:38

Очень просто для программы поместить себя в фоновом режиме. Код раньше делал, так могло быть настолько простым:

if (fork() > 0) _exit(0);

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

, По моему опыту, Skype и Firefox не помещают себя в фоновом режиме. Они делают что-то другое все же.

, Когда Вы запускаете одну из этих программ, они проверят, существует ли уже рабочий экземпляр программы. Если будет рабочий экземпляр, то новый экземпляр отправит сообщение в рабочий экземпляр с параметром, который Вы просто дали ему, и затем вышли.

эффект этого состоит в том, что уже рабочий экземпляр делает что-то, и Вы возвращаете свою подсказку.

3
ответ дан 23 November 2019 в 08:38

Другие вопросы по тегам:

Похожие вопросы: