Почему некоторые приложения не поддерживают терминал после запуска

Часто, когда я запускаю приложение из терминала, оно запускает и удерживает терминал, поэтому, если я нажму Ctrl+C , приложение закроется, например
[johndoe@localhost ~] gedit
Тем не менее, я заметил, что некоторые программы просто запускаются независимо, хотя и запускаются из терминала, как atom и code ( code Visual Studio). Это почему? Как это работает?

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

    Если вы ищете подробности о том, как это делается, ищите «daemonize».

    редактировать

    Как отметил @JdeBP, демонизация включает в себя больше, чем просто разветвление и выход. Обычно это включает закрытие всех файлов или, по крайней мере, 0-2, другой форк, отсоединение от группы процессов оболочки и так далее. Программы, которые вы упоминали, могут или не могут делать это.