Как выйти из терминала, чтобы все запущенные процессы продолжали работать?
Я использую firefox & как команда в терминале. Это должно отделить Firefox от терминала. Тем не менее, когда я закрываю терминал, Firefox выходит. Есть идеи, почему это происходит? Как я могу преодолеть эту ситуацию?
2 ответа
Вы можете выйти из терминала, нажав Ctrl+D; это разорвет цепочку parent-child, так что терминал больше не будет родительским.
Использование амперсанда только помещает процесс на задний план; он не разъединяет родителя с дочерним, поэтому, когда родительский процесс завершается, то же самое делают и его дочерние элементы.
Как было указано ранее, дополнительный & только помещает процесс в фоновый режим (то есть вы получаете новое приглашение) и можете ввести новую команду.
Уничтожение родительского процесса путем закрытия терминала отправляет сигнал всем дочерним процессам на завершение.
В зависимости от используемой вами оболочки вы можете отключить процессы с помощью nohup или disown. Последнее, вероятно, то, что вы хотите, так как первое требуется при вызове. Вам нужно указать номер задания, обработанного %, скорее всего, это будет 1. Итак, наберите:
disown %1
Если у вас есть более одного фонового процесса, введите:
jobs
чтобы получить список.