2

Я действительно не был уверен, как сформулировать заголовок вопроса. Я имею в виду, что когда я использую терминал для запуска программы, большую часть времени, когда терминал закрывается, он также выходит из программ, запущенных с него.

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

Однако я заметил, что это не всегда так. Например, я скачал Sublime Text Editor и создал символическую ссылку в PATH. Я могу запустить эту программу, выдав команду sublime из терминала, но последующее закрытие программы терминала никак не повлияет на sublime.

Однако в других случаях либо дочерний процесс, который был запущен, также закрывался, либо зависал, что вызывало проблемы.

tl; dr: всегда ли это так, что программы, запущенные из закрытого родительского процесса, будут закрыты при выходе из родительского процесса?И если так, есть ли способ запустить программу из терминала, а затем закрыть терминал, не выходя из запущенного процесса?

Весь смысл здесь в том, чтобы запускать программы из терминала, чтобы я не переполнял свой рабочий стол символическими ссылками.

1 ответ1

3

Вы можете отказаться от процесса, используя имя.

$ nedit &
$ disown nedit
$ exit

и недить все равно будет.

Некоторые программы работают так, что запущенная вами программа запускает ДРУГУЮ программу, которая запускается сама по себе.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .