Mehrbenutzer-GNU-Bildschirmsitzungen


7

Ich versuche, unter Mac OS 10.7.3 Mehrbenutzer-Bildschirmsitzungen einzurichten, und es tritt der Fehler auf Attach attempt with invalid pid(xxx)!.

Wenn Sie es wie folgt einrichten:

Erstkonfiguration des Systems:

Treffen Sie die richtigen Berechtigungen für den Bildschirmbefehl

sudo chmod u+s $(which screen)
sudo mkdir /var/run/screen/
sudo chmod 755 /var/run/screen/

Bildschirmeinrichtung

Von <user_sharing_screen>

Initialisieren Sie den Bildschirm mit dem angegebenen Sitzungsnamen:

screen -S <session_name>

Machen Sie den Bildschirm Mehrbenutzer:

C-a :multiuser on
C-a :acladd <user_to_share_with>

Stellen Sie <user_to_share_with>auf demselben System eine Verbindung zum freigegebenen Bildschirm her

screen -x <user_sharing_screen>/<session_name>

Dann bekomme ich die Fehlermeldung Attach attempt with invalid pid(xxx)!


1
Verwenden Sie den Aktienbildschirm? Wenn ja, würde das / tmp / screen als temporäres Verzeichnis für die Sitzungen verwenden? Dies bedeutet, dass Sie den Teil überspringen können, indem Sie das Verzeichnis / var / run / screen erstellen. Leider wird beim Verbindungsversuch die gleiche Fehlermeldung angezeigt.
— Boretom

1
Haben Sie darüber nachgedacht, tmux anstelle von screen zu verwenden? Aktive Entwicklung und Sie müssen nicht durch all diese Rahmen springen, um sie unter OS X zum Laufen zu bringen. ITerm bietet sogar integrierte Unterstützung dafür.
— Ian C.

Am Ende habe ich nur einen Server mit Ubuntu eingerichtet, auf dem sich alle anmelden können.
— Rudolph9

Eine Problemumgehung könnte versuchen, tmux? Sie haben eine sehr ähnliche Funktionalität. Wenn Sie die Kriterien bearbeiten, könnte ich detaillierter antworten, wenn Sie für alternative Software offen sind.
— Ryan A.

Antworten:


2

[Update] Das Bildschirmdienstprogramm ist laut einem Beitrag von superuser.com ab Mac OS X 10.6 defekt .

Ich konnte eine funktionierende Version des Bildschirms von MacPorts.org kompilieren . Wenn Sie mit MacPorts vertraut sind, kann ich Ihnen eine aktualisierte x86_64-Binärdatei oder die Quellcode-Patch-Datei (Ändern einer Zeile in socket.c) zur Verfügung stellen. [/ Update]

Update2 Diff von socket.c hinzufügen

--- screen-4.0.3/socket.c   2003-09-08 16:26:50.000000000 +0200
+++ /Users/fluffy/screen-4.0.3/socket.c 2012-03-10 22:58:57.000000000 +0100
@@ -745,7 +745,7 @@
   if (eff_uid == real_uid)
     return kill(pid, 0);
   if (UserContext() > 0)
-    UserReturn(kill(pid, 0));
+    return 0;
   return UserStatus();
 }

Ich bin ein Homebrew-Benutzer. Gibt es etwas Kompatibles, das ich verwenden könnte?
— Rudolph9

Sie müssten eine Brauformel dafür erstellen. Ich habe noch keinen gemacht und ehrlich gesagt sehe ich momentan keine Zeit dafür.
— Boretom

0

Ich habe eine Homebrew-Gabel mit dem oben gezeigten Patch erstellt und sie funktioniert für mich. Um es zu verwenden, gehen Sie folgendermaßen vor:

brew tap stevemadere/homebrew-dupes && \
brew install stevemadere/dupes/screen && \
sudo chown root `which screen` && \
sudo chmod +s `which screen`
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.