Linux

為什麼我不能附加螢幕會話

  • June 24, 2011

我有一個正在執行的螢幕會話,我想退出,但我不能,因為當我嘗試重新連接時,我收到一個錯誤,說它無法打開我的終端。我確信我可以殺死守護程序或其他東西,但我需要學習“正確”的方式,以及實際發生的事情。

daniel@DELIRIUM:~/server1/bin/plugins$ screen -list
There is a screen on:
       1424.pts-0.DELIRIUM     (06/23/2011 01:18:14 PM)        (Detached)
1 Socket in /var/run/screen/S-daniel.

daniel@DELIRIUM:~/server1/bin/plugins$ screen -r 1424
Cannot open your terminal '/dev/pts/0' - please check.

另外,什麼是插座?你越能把它弄糊塗越好。

出於某種原因,您不擁有您的 TTY。您是否曾經su從另一個使用者更改為該使用者?通常,TTY 歸最初登錄該終端的人所有。

有一個巧妙的技巧可以解決這個問題(除了更改最初登錄的使用者對 /dev/pts/0 文件的權限),該bsdutils軟體包有一個名為的程序script,在執行時,它的作用類似於鍵盤記錄器,同時保存兩者您鍵入的內容和列印的程序。它啟動另一個 shell 並為該 shell 分配另一個 pseudotty 以記錄所有這些,因此如果您執行script /dev/null它將創建一個具有適當權限的新 pseudotty,並開始將其上的所有內容記錄到 /dev/null。然後您將能夠使用螢幕重新連接您的會話。

至於“套接字”,這是螢幕中命名管道文件(也稱為 FIFO)的術語/var/run/screen/S-username,例如

prw------- 1 derf derf 0 Jun 23 22:42 30029.pts-0.server

當您第一次啟動 screen 時,將創建此管道文件,以便將screen您用於查看顯示的程序與實際執行的程序的後台screen程序(通常重命名)連接起來。當您執行時,您正在執行的 screen 程序打開這個管道與後台螢幕程序對話。SCREEN``screen -r

引用自:https://serverfault.com/questions/283684