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