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)!

rudolph9
quelle
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();
 }
Boretom
quelle
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`
Steve Madere
quelle