Versuchen Sie, script /dev/null
auszuführen, um das Problem zu lösen als Benutzer su
bis vor dem Start von screen
.
script -q -c "su $USER -l -c \"screen -m -d -S $NAME $DAEMON start\"" /dev/null
Mehr dazu:
- https://serverfault.com/questions/116775/sudo-as-different-user-and-running-screen/116830
Dies geschieht, weil Sie möglicherweise sudo su user_name
ausgeführt haben und dann den Bildschirmbefehl ausgelöst.
Es gibt zwei Möglichkeiten, dies zu beheben.
- Melden Sie sich über ssh direkt bei "user_name" an.
- Übernehmen Sie die Shell, indem Sie
script /dev/null
eingeben als Benutzeruser_name
und geben Sie dannscreen
ein
Führen Sie diesen Befehl aus, um die Shell zu besitzen
#script /dev/null
und versuchen Sie Screen
#screen -r < name of the screen >
Inspiriert von beiden befürworteten Antworten hier habe ich meinem .bashrc
die folgende Funktion hinzugefügt :
sscreen(){
script -q -c "screen $*" /dev/null;
}
Jetzt verwende ich einfach sscreen
statt screen
und müssen nie wieder über das Problem nachdenken.