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/nulleingeben als Benutzeruser_nameund geben Sie dannscreenein
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.