LSOpenURLsWithRole() завершается ошибкой -10810 на Yosemite из tmux

LSOpenURLsWithRole() завершается ошибкой -10810 на Yosemite из tmux

Пытаюсь открыть приложение из командной строки (Terminal.app), внутри tmux(установлено через MacPorts, версия 1.9a), и получаю следующий результат:

$ open /Applications/Adobe\ Reader.app/
LSOpenURLsWithRole() failed with error -10810 for the file /Applications/Adobe Reader.app.

Та же команда работает отлично,с того же терминала,если выполняется вне tmux.

Окружение должно быть считано с хоста; следующее находится в tmux.conf:set -g update-environment -r

При перезапуске terminal.app или tmux иногда возникает ошибка с другим сообщениемсначала,(см. ниже) и при повторной попытке вместо этого выдается указанная выше ошибка -10810.

$ open /Applications/Adobe\ Reader.app/
The window server could not be contacted.  open must be run with a user logged in at the console, either as that user or as root.

Я пробовал как собственные приложения Apple (Preview, Font Book, Contacts), так и сторонние (Adobe, Evernote и т. д.). Никакой разницы. Единственное приложение, которое, похоже, работает, это Finder. ( open [dirname]например.)

решение1

Для этой проблемы есть решение/обходной путь:

  • Обновите версию reattach-to-user-namespace. Это используется tmux для выполнения программ. Я использую brew, а не macports, поэтому я только что сделал: brew update; brew upgrade reattach-to-user-namespace. Macports, вероятно, сможет сделать что-то подобное.
  • Добавьте в ваш файл следующее .tmux.conf:

    set -g default-command "reattach-to-user-namespace -l /bin/bash"

Перезапустите сеанс tmux, и это позволит вам запускать программы из командной строки.

Дополнительную информацию можно найти на сайтеэта проблема github.

решение2

Проблема в том, что tmux изменяет начальную загрузку на системный домен, хотя этого делать не следует (см.https://trac.macports.org/ticket/18357). Более старые версии launchd обходили эту ошибку в tmux, но переписанный launchd в OS X Yosemite не обходит эту ошибку tmux.

Вам придется либо ждать, пока Apple, возможно, выпустит обновление, которое обойдет ошибку tmux, либо донимать разработчиков tmux, чтобы они исправили эту ошибку в tmux, которая известна уже как минимум 6 лет.

Связанный контент