Perché non posso colbind una session di schermo

Ho una session di schermata in esecuzione che vorrei: chiudere, ma non posso perché quando provo a ricolbind, ho un errore dicendo che non può aprire il mio terminal. Sono sicuro che potrei uccidere il demone o qualcosa del genere, ma devo imparare il modo "giusto", così come quello che sta succedendo.

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. 

Inoltre, cosa è una presa? Più si può mormorare il meglio.

  • Come estrarre il nome host da $ (chi sono io)
  • Come abilitare l'inoltro di SSH X11 tramite un server aggiuntivo?
  • Linux ifIndex persistenza per SNMP
  • Come posso impostare Apache con FastCGI e Ruby?
  • Dopo l'espansione di arrays RAID hardware fdisk non permetterò di utilizzare altri settori disponibili
  • Pulizia di spazzatura e log su unix / linux
  • yum-plugin-priorities: quali pacchetti sono esclusi a causa delle protezioni di priorità dei repository?
  • Strumento di archiviazione / revisione del log di applicazione
  • Dove / quando un sistema Linux cambia la modalità di visualizzazione della console?
  • Le migliori pratiche per la rotazione dei log di syslog su RHEL con piani diversi?
  • Come viene utilizzato il tasto SysRq su un sistema Linux?
  • Come utilizzare i tasti cursore in vi sotto lo schermo?
  • 2 Solutions collect form web for “Perché non posso colbind una session di schermo”

    Non possiedi il tuo TTY per qualche motivo. Hai utilizzato su per cambiare a tale utente da un altro utente? Normalmente la TTY è di properties; della persona che si connette in quel terminal.

    C'è un trucco ordinato per risolvere questo problema (diverso da modificare le autorizzazioni del file / dev / pts / 0 da parte dell'utente che è stato originariamente connesso), il pacchetto bsdutils ha un programma chiamato script che, quando eseguito, agisce come un keylogger, salvando sia il tipo di printing che i programmi printingti. Inizia un'altra shell e assegna un altro pseudotty per quella shell per registrare tutto questo, quindi se eseguite script /dev/null creerà un nuovo pseudotty con le autorizzazioni appropriate e inizierà a registrare tutto su / dev / null. Quindi sarai in grado di utilizzare la schermata per reattaccare la session.

    Per quanto riguarda le "prese", questo è il termine della schermata per i file di pipe denominati (noto anche come FIFO) in /var/run/screen/S-username

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

    Quando si inizia la schermata iniziale, questo file di pipe viene creato per colbind il process dello screen utilizzato per visualizzare i display con il process screen background (di solito rinominato SCREEN ) i programmi in esecuzione. Quando si esegue lo screen -r , schermo che stai eseguendo apre questo pipe per parlare con il process dello schermo di background.

    Qui c'è qualcosa di strano. Puoi inserire l'output di:

      ls -l /dev/pts/0 id 

    Una socket in questo caso è una forma di comunicazione interprocessa, un file sul file system che forma un canale tra il process e con … altri processi. Così il "client" dello schermo sta parlando con l'altra istanza dello schermo in esecuzione e così funziona la magia dello schermo. Le conchiglie sono confusioni nei Linux perché tradizionalmente la gente pensa alla parola socket come significato come Socket di networking. È un concetto difficile da scomparire, si inserisce in una serie di altri canali di comunicazione interprocessali meglio spiegati dal libro "Programmazione avanzata nell'ambiente UNIX".

    Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.