Chế độ nhiều người dùng màn hình GNU bị hỏng trong OS X 10.6 (Snow Leopard)


7

Tôi đang sử dụng màn hình GNU để lập trình cặp từ xa. Hãy gọi tài khoản cục bộ cho người dùng từ xa 'ghép đôi'. Tôi có các dòng sau trong .screenrc:

multiuser on
acladd pairpair

Tôi đã chạy sudo chmod u+s /usr/bin/screen. Tuy nhiên, khi người dùng từ xa cố gắng kết nối với màn hình của tôi bằng lệnh screen -r [my_account_name]/[pid_of_screen]tôi nhận được thông báo sau:

Attach attempt with bad pid(xxx)

Pid được liệt kê trong thông báo lỗi khớp với pid của quá trình màn hình được chạy bởi người dùng từ xa. Quá trình màn hình của người dùng từ xa bị treo; phiên màn hình của tôi tiếp tục vui vẻ sau khi thông báo lỗi biến mất.

Tôi đã thử sử dụng cả tích hợp screen(tại /usr/bin/screen) và screencó sẵn từ MacPorts, nhưng tôi đều gặp cùng một lỗi trong cả hai trường hợp.

Điều này hoạt động trên OS X 10.5 (Leopard).

Tôi đã tìm kiếm thông báo lỗi, nhưng hầu hết các lần truy cập liên quan đến một số lỗi BSD từ năm 2003 hoặc lâu hơn (đã được sửa). Có ai khác nhìn thấy hành vi này? Có ai có ý tưởng làm thế nào để hỗ trợ nhiều người dùng trong màn hình hoạt động trong SL không?


Tôi đang có vấn đề tương tự. Thực hiện theo các bước sau để kết nối không hoạt động: slaptijack.com/system-ad dùng / từ
Benjamin Oakes

Câu trả lời:


4

Tôi không biết nếu bạn vẫn còn nhìn thấy điều này, nhưng tôi thì có.

Màn hình sử dụng lệnh gọi kill () với tín hiệu bằng 0 để xác thực các PID. Nguyên nhân của vấn đề là kill () bị lỗi bất ngờ với errno EPERM. Điều này chỉ xảy ra nếu UID và EUID của quy trình gọi là khác không và không khớp với UID và EUID của quy trình đích, tương ứng.

Trong trường hợp cụ thể này, UID của hai quy trình được đề cập là khác nhau và EUID được kế thừa của cả hai quy trình đều bằng không. Điều này sẽ ổn, nhưng là một phần của kiểm tra độ sạch của PID, EUID của cả hai quá trình được đặt thành UID sở hữu phiên màn hình. Trong kịch bản cụ thể này, mặc dù cả hai EUID đều giống nhau, kill () vẫn thất bại với errno EPERM.

Tôi đã gửi lỗi 8965041 tại bugreport.apple.com. Hy vọng rằng đây là con đường chính xác để sửa lỗi này.

Trong khi đó, tôi đang khắc phục sự cố bằng cách biên dịch nhị phân màn hình của chính mình, nơi tôi đã buộc CheckPid () trả về 0.


1

Tôi sử dụng máy chủ Snow Leopard và tôi sử dụng màn hình nhiều người dùng mà không gặp vấn đề gì - tôi sử dụng exec screen -xRRtrong .profilemàn hình của mình để bắt đầu, thay vào đó sử dụng các PID rõ ràng.

công việc này là dành cho bạn? Nếu vậy thì đó là một vấn đề với cú pháp PID, thay vào đó, màn hình nhiều người dùng


Không, điều đó không làm cho nhiều người làm việc.
schustafa

0

Tôi đang sử dụng screencho lập trình cặp từ xa. Chúng tôi đã thử một số giải pháp chia sẻ màn hình như iChat, Skype và VNC. Để chia sẻ văn bản, việc gửi pixel (và rất khó để đọc và ghi từ xa), đặc biệt là khi các kết nối Internet không ổn định.

Bởi vì đã có rất nhiều sự tin tưởng ngụ ý trong lập trình cặp đôi (và thực tế là chúng tôi có một máy tính dùng chung), nên tình huống có một cách giải quyết:

  1. Tạo một tài khoản người dùng được chia sẻ (ví dụ: "ghép nối")
  2. Trao quyền quản trị tài khoản đó
  3. Thêm khóa công khai cho người dùng Tôi sẽ ghép nối từ xa với

Người dùng từ xa hiện có thể SSH và tham gia phiên màn hình.

Cảm ơn wwalkertrong #screenirc.freenode.net đã giúp đỡ.

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.