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