screen Cannot open your terminal '/dev/pts/0' - please check
49,462
Solution 1
This happens because you may have done a sudo su user_name
and then fired the screen command.
There are 2 ways to fix this.
- Login directly to "user_name" via ssh.
- Take ownership of the shell
by typing
script /dev/null
as the useruser_name
and then typescreen
Solution 2
To solve the problem try running script /dev/null
as the user you su
to before launching screen
.
script -q -c "su $USER -l -c \"screen -m -d -S $NAME $DAEMON start\"" /dev/null
More on it:
Solution 3
Inspired by both endorsed answers here I added the following function to my .bashrc
:
sscreen(){
script -q -c "screen $*" /dev/null;
}
Now I just use sscreen
instead of screen
and never have to think about the issue again.
Solution 4
Run this command to own the shell
#script /dev/null
and try Screen
#screen -r < name of the screen >
Author by
LFS96
Updated on September 17, 2021Comments
-
LFS96 over 2 years
I want to start a program in a screen as the user "XYZ" with a script. This is my script in short form:
# replace <newuser> with the user you wish to run teamspeak 3 with. USER="teamspeak" # Do not change this path PATH=/bin:/usr/bin:/sbin:/usr/sbin # The path to the teamspeak 3 server/scripts . example = /home/teamspeak3/teamspeak3-server DIR=/home/teamspeak/voiceserver/teamspeak3 DAEMON=$DIR/ts3server_startscript.sh # Change all PARAMS to your needs. I required the ini so teamspeak used MySQL PARAMS="inifile=ts3server.ini" #Name = The screen will be named from this. NAME=teamspeak3 DESC="Teamspeak Server 3" case "$1" in start) echo "Starting $DESC" script -q -c "su $USER -l -c \"screen -m -d -S $NAME $DAEMON start\"" /dev/null ;; stop) su $USER -l -c "screen -S $NAME -X quit " echo " ... done. $DESC Stopped." ;; restart) su $USER -l -c "screen -S $NAME -X quit " echo " Closed Process, Restarting" script -q -c "su $USER -l -c \"screen -m -d -S $NAME $DAEMON start\"" /dev/null echo " ... done. $DESC Restarted" ;; status) # Check whether there's a "Team Speak 3" process ps aux | grep -v grep | grep ts3server_ > /dev/null CHECK=$? [ $CHECK -eq 0 ] && echo "$DESC is UP" || echo "$DESC is DOWN" ;; *) echo "Usage: $0 {start|stop|status|restart}" exit 1 ;; esac exit 0
I want connect in the screen, but I got this.
Cannot open your terminal '/dev/pts/0' - please check.
Did I do something wrong?
-
Igor Chubin over 10 years@FabianHarmsen: Which message do you get?
-
Igor Chubin over 10 years@FabianHarmsen: What says screen -ls?
-
Rajesh Omanakuttan almost 2 yearsWe just ran 'script /dev/null' as the user with 'user_name', it worked!