Как выйти из терминала, чтобы все запущенные процессы продолжали работать?

Я использую firefox & как команда в терминале. Это должно отделить Firefox от терминала. Тем не менее, когда я закрываю терминал, Firefox выходит. Есть идеи, почему это происходит? Как я могу преодолеть эту ситуацию?

2 ответа

Решение

Вы можете выйти из терминала, нажав Ctrl+D; это разорвет цепочку parent-child, так что терминал больше не будет родительским.

Использование амперсанда только помещает процесс на задний план; он не разъединяет родителя с дочерним, поэтому, когда родительский процесс завершается, то же самое делают и его дочерние элементы.

Как было указано ранее, дополнительный & только помещает процесс в фоновый режим (то есть вы получаете новое приглашение) и можете ввести новую команду.

Уничтожение родительского процесса путем закрытия терминала отправляет сигнал всем дочерним процессам на завершение.

В зависимости от используемой вами оболочки вы можете отключить процессы с помощью nohup или disown. Последнее, вероятно, то, что вы хотите, так как первое требуется при вызове. Вам нужно указать номер задания, обработанного %, скорее всего, это будет 1. Итак, наберите:

disown %1

Если у вас есть более одного фонового процесса, введите:

jobs

чтобы получить список.

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