Chcete-li problém vyřešit, zkuste spustit script /dev/null
jako uživatel je vám su
do před spuštěním screen
.
script -q -c "su $USER -l -c \"screen -m -d -S $NAME $DAEMON start\"" /dev/null
Více o tom:
- https://serverfault.com/questions/116775/sudo-as-different-user-and-running-screen/116830
K tomu dochází, protože jste možná provedli sudo su user_name
a poté spustil příkaz screen.
Existují 2 způsoby, jak to opravit.
- Přihlaste se přímo k "user_name" přes ssh.
- Převezměte vlastnictví shellu zadáním
script /dev/null
jako uživateluser_name
a poté zadejtescreen
Spusťte tento příkaz, abyste vlastnili shell
#script /dev/null
a zkuste Screen
#screen -r < name of the screen >
Inspirován oběma podporovanými odpověďmi zde jsem přidal následující funkci do svého .bashrc
:
sscreen(){
script -q -c "screen $*" /dev/null;
}
Nyní používám pouze sscreen
místo screen
a už nikdy nebudete muset na tento problém myslet.