Benutzer hat sich nach dem Anschluss an GNU Screen nicht mehr

356
user1244932

Nachdem der Benutzer angemeldet und vor lief er GNU Screen,

[root@15inch ~]# w 11:45:17 up 3:44, 2 users, load average: 0,00, 0,02, 0,00 USER TTY LOGIN@ IDLE JCPU PCPU WHAT user pts/2 09:42 7.00s 0.03s 0.03s -bash [root@15inch ~]# who user pts/2 2018-08-31 09:42 (192.168.1.136) [root@15inch ~]#  

aber danach GNU Screensah ich nichts:

[root@15inch ~]# w [root@15inch ~]# who [root@15inch ~]# 

who --allzeigt nur etwas:

# who --all system boot Aug 31 08:01 LOGIN tty1 Aug 31 08:01 548 id=tty1 pts/2 Aug 31 09:42 3068 id=ts/2 term=0 exit=0 

Das pts/2ist Pseudo-TTY, das nach seinem Login über erstellt wurde ssh. Aber wenn ich versuche, ihm eine Nachricht zu senden:

[root@15inch ~]# write user pts/2 write: user is not logged in on pts/2 

nur direkter Gebrauch von pts / 2 works:

[root@15inch ~]# echo "HI" > /dev/pts/2  [root@15inch ~]#  

ist das erwartete Verhalten? Warum GNU Screendiesen Benutzer vor System-Utils verstecken?

0
Ist der Benutzer tatsächlich noch angemeldet? Wenn Sie `screen` verlassen, können Sie ihnen eine Nachricht senden? Eric Renouf vor 5 Jahren 0
@EricRenouf Ja, verwenden Sie immer noch angemeldet. Und wenn der Benutzer den GNU-Bildschirm abmontiert, wird er mit "w" / "who" angezeigt. Wenn er die Bildschirmsitzung erneut "screen -rd" anschließt, "disapper" wird er erneut. user1244932 vor 5 Jahren 0

1 Antwort auf die Frage

2
grawity

Es ist eine legitime Funktion, obwohl ich den ursprünglichen Grund dafür nicht genau kenne. Ich würde vermuten, dass Screen das "äußere" tty von utmp entfernt, weil es nicht mehr relevant ist - solange Sie "angehängt" sind, haben Sie in den meisten Absichten und Zwecken nicht wirklich etwas mit dem "äußeren" tty zu tun.

Normalerweise verursacht dies keine Probleme, da Screen utmp-Einträge für jedes innere Pty (entsprechend jedem Bildschirmfenster) hinzufügen sollte . Sie sollten Einträge mit Hostnamen wie " :S.0" oder " <originalhost>:S.0" in der who -a- Ausgabe sehen.

Wenn dies nicht der Fall ist, stellen Sie sicher, dass das Fenster als "angemeldet" markiert ist. Versuchen Sie Ctrl+AShift+L, den Login-Status umzuschalten. (Der Standardzustand wird mit deflogin on~ / .screenrc oder dem systemweiten Screenrc festgelegt.)