tmux 내에서 Yosemite의 오류 -10810으로 LSOpenURLsWithRole ()이 실패 함


17

명령 줄 (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.

Apples 자체 앱 (미리보기, 서체 관리자, 연락처)과 타사 (Adobe, Evernote 등)를 모두 시도했습니다. 차이 없음. 작동하는 것으로 보이는 하나의 앱은 파인더입니다. ( open [dirname]예 :)

답변:


19

이에 대한 해결책 / 해결 방법이 있습니다.

  • 의 버전을 업데이트하십시오 reattach-to-user-namespace. 이것은 tmux에서 프로그램을 실행하는 데 사용됩니다. 나는 macports보다는 brew를 사용하므로 방금 수행했습니다 brew update; brew upgrade reattach-to-user-namespace. 맥 포트는 비슷한 것을 할 수있을 것입니다.
  • .tmux.conf파일에 다음을 추가 하십시오.

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

tmux 세션을 다시 시작하면 명령 행에서 프로그램을 시작할 수 있습니다.

자세한 내용은 이 github 문제 에서 확인할 수 있습니다 .


FWIW, 업데이트 reattach-to-user-namespace는 나에게 아무런 영향을 미치지 않으며 문제는 여전히 지속됩니다. tmux 자체를 수정해야합니다 (다른 답변 참조).
Konrad Rudolph

기본 쉘을 사용하지 않는 경우 명령에서 경로를 변경해야합니다 (예 :) path/to/your/fish.
Aviel Gross

3

문제는 tmux가 부트 스트랩을 시스템 도메인으로 변경해서는 안된다는 것입니다 ( https://trac.macports.org/ticket/18357 참조 ). 이전 버전의 launchd는 tmux에서이 버그를 해결했지만 OS X Yosemite에서 다시 작성된 Launch는이 tmux 버그를 해결하지 못했습니다.

Apple이 tmux 버그를 해결하는 업데이트를 출시 할 때까지 기다리거나 tmux 개발자가 pester를 통해 6 년 이상 알려진 tmux에서이 버그를 수정해야 할 수도 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.