LSOpenURLsWithRole () không thành công với lỗi-10810 trên Yosemite từ bên trong tmux


17

Cố gắng mở một ứng dụng từ dòng lệnh (Terminal.app), bên trong tmux(được cài đặt qua MacPorts, phiên bản 1.9a) và nhận được kết quả sau:

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

Lệnh tương tự hoạt động tốt, từ cùng một thiết bị đầu cuối, nếu được thực hiện bên ngoài tmux.

Môi trường nên được đọc từ máy chủ; sau đây là trong tmux.conf:set -g update-environment -r

Khi khởi động lại terminal.app hoặc tmux, đôi khi nó bị lỗi với một thông báo khác , (xem bên dưới) và khi thử lại, thay vào đó, lỗi -10810 được đưa ra.

$ 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.

Tôi đã thử cả ứng dụng riêng của Táo (Bản xem trước, Sách phông chữ, Danh bạ) và bên thứ ba (Adobe, Evernote, v.v.). Không khác nhau. Một ứng dụng dường như hoạt động, là công cụ tìm. ( open [dirname]ví dụ.)

Câu trả lời:


19

Có một giải pháp / cách giải quyết cho việc này:

  • Cập nhật phiên bản của bạn reattach-to-user-namespace. Điều này được sử dụng bởi tmux để thực hiện các chương trình. Tôi sử dụng bia chứ không phải macports, vì vậy tôi chỉ làm : brew update; brew upgrade reattach-to-user-namespace. Macports có khả năng có thể làm một cái gì đó tương tự.
  • Thêm vào đây vào .tmux.conftập tin của bạn :

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

Khởi động lại phiên tmux của bạn và điều đó sẽ cho phép bạn bắt đầu các chương trình từ dòng lệnh.

Thông tin thêm có thể được tìm thấy tại vấn đề github này.


FWIW, cập nhật reattach-to-user-namespacekhông tạo ra sự khác biệt đối với tôi và vấn đề vẫn còn tồn tại. Có vẻ như tmux phải được sửa chữa (xem câu trả lời khác).
Konrad Rudolph

khi không sử dụng shell mặc định, hãy đảm bảo thay đổi đường dẫn trong lệnh (ví dụ path/to/your/fish:).
Aviel Gross

3

Vấn đề là tmux đang thay đổi bootstrap thành tên miền hệ thống khi không nên (xem https://trac.macports.org/ticket/18357 ). Các phiên bản cũ hơn của launchd đã hoạt động xung quanh lỗi này trong tmux, nhưng launchd được viết lại trong OS X Yosemite không hoạt động xung quanh lỗi tmux này.

Bạn sẽ cần phải chờ Apple có thể phát hành bản cập nhật hoạt động xung quanh lỗi tmux hoặc các nhà phát triển tmux để sửa lỗi này trong tmux đã được biết đến ít nhất 6 năm nay.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.