Я использую browse-url
/ browse-url-firefox
для открытия ссылок в Firefox из Emacs 24.5.1 под Linux (Fedora 23), который по сути выполняет firefox
исполняемый файл с URL-адресом start-process
. Если уже запущен экземпляр Firefox, это, в свою очередь, приведет к открытию URL-адреса в новой вкладке и завершит работу firefox
исполняемого файла, созданного в Emacs, но в противном случае новый экземпляр Firefox будет запущен как дочерний процесс Emacs (для тестирования , это эквивалентно M-! sleep 1h & RET
).
Если я затем захочу выйти из Emacs, он спросит меня: «Активные процессы существуют; убить их и выйти в любом случае?» с возможностью либо убить экземпляр Firefox, либо оставить Emacs работающим. Вместо этого я хотел бы «отсоединить» firefox
процесс от родителя Emacs, чтобы я мог выйти из Emacs, сохраняя работающий экземпляр Firefox.
Можно ли порождать процессы из Emacs, которые «выживают», выходя из Emacs, или все порожденные процессы должны умирать при выходе из Emacs?
start-process
(например, средства просмотра PDF), и Emacs считает, что его работа завершена.Ответы:
вот решение, короткое @ ответ abo-abo.
Обратите внимание, что условие необходимо, потому что Mac не имеет setsid.
источник
Вот команда, которая делает то, что вы хотите:
Ключевым моментом здесь является использование
nohup
.Смотрите источник здесь .
источник
nohup
это хорошее решение. К сожалению, я нахожу ваш ответ слишком «отвлекающим» для кого-то, кто просто ищет, как достичь цели. Не могли бы вы урезать источник до чего-то подобного(shell-command "nohup sleep 1h &")
и добавить явное примечание, что «отсоединение» от существующего процесса невозможно, чтобы я мог принять ответ?