Я использую экран GNU для удаленного парного программирования. Давайте назовем локальный счет на удаленного пользователя 'pairpair'. У меня есть следующие строки в моем .screenrc
:
multiuser on
acladd pairpair
Я работал sudo chmod u+s /usr/bin/screen
. Однако, когда удаленный пользователь пытается соединиться с моим экраном с командой screen -r [my_account_name]/[pid_of_screen]
Я получаю следующее сообщение:
Attach attempt with bad pid(xxx)
Pid, перечисленный в сообщении об ошибке, соответствует pid экранного процесса, выполненного удаленным пользователем. Экранный процесс удаленного пользователя зависает; моя экранная сессия продолжается счастливо вперед после того, как сообщение об ошибке исчезнет.
Я попытался использовать обоих встроенное screen
(в /usr/bin/screen
) и screen
доступный от MacPorts, но я получаю ту же ошибку в обоих случаях.
Это работало над OS X 10.5 (Leopard).
Я погуглил вокруг для сообщения об ошибке, но большинство хитов касается некоторой ошибки BSD приблизительно от 2003 (который был зафиксирован). Кто-либо еще видел это поведение? У кого-либо есть какая-либо идея, как сделать многопользовательскую поддержку в экранной работе в SL?
Я использую сервер Snow Leopard, и я использую многопользовательский экран без проблем - я использую exec screen -xRR
в моем .profile
к экрану "Пуск", скорее затем с помощью явного PIDs.
Это работает на Вас? Раз так это - проблема с синтаксисом PID, скорее затем многопользовательский экран сам
Я использую screen
для удаленного парного программирования. Мы попробовали некоторые решения для демонстрации экрана как iChat, Skype и VNC. Для совместного использования текста это - немного излишества для отправки пикселей (и жесткий, чтобы читать и записать удаленно), особенно когда Интернет-соединения облуплены.
Поскольку существует большое доверие, подразумеваемое в паре уже, программирующей (и то, что у нас есть общий компьютер), ситуация имеет обходное решение:
Удаленные пользователи могут теперь SSH в и присоединяться к экранной сессии.
Благодаря wwalker
в #screen
на irc.freenode.net для справки.
Я не знаю, видите ли Вы все еще это, но я.
Экран использует вызов для уничтожения () с нулем сигнала для проверки PIDs. Причина проблемы состоит в том, которые уничтожают (), неожиданно провально с errno EPERM. Это должно только произойти, если UID и EUID обработки вызовов являются ненулевыми и не соответствуют UID и EUID целевого процесса, соответственно.
В данном случае, UID двух рассматриваемых процессов отличаются, и наследованные EUID обоих процессов являются нулем. Это было бы прекрасно, но как часть проверки работоспособности PID, EUID обоих процессов установлен на UID, который владеет экранной сессией. В этом конкретном сценарии, даже при том, что оба EUIDs являются тем же, уничтожают (), все еще перестал работать с errno EPERM.
Я зарегистрировал ошибку 8965041 по bugreport.apple.com. Надо надеяться, это - корректная авеню, чтобы иметь, это зафиксировало.
Тем временем я работаю вокруг проблемы путем компиляции моего собственного экранного двоичного файла, где я вынудил CheckPid () возвратиться 0.