экран не может открыть ваш терминал '/ dev/pts / 0' - пожалуйста, проверьте

Я хочу запустить программу на экране в качестве пользователя " XYZ " со скриптом. Это мой скрипт в краткой форме:

# 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 "" 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:  {start|stop|status|restart}"
exit 1
;;
esac
exit 0

Я хочу подключиться к экрану, но я получил это.

Cannot open your terminal '/dev/pts/0' - please check.

Я сделал что-то неправильно?

4 ответов


чтобы решить проблему, попробуйте запустить script /dev/null как пользователь вы su to перед запуском screen.

script -q -c "su $USER -l -c \"screen -m -d -S $NAME $DAEMON start\"" /dev/null

подробнее об этом:


запустите эту команду, чтобы владеть оболочкой

#script /dev/null  

и попробуйте Screen

#screen -r < name of the screen >

вот как я нашел. я!--3-->не могу использовать screen от rc.местные или лучше, если я хочу использовать его, я потребуется root. Я не хочу использовать root. Мой путь теперь использовать crontab -e это работает.


это происходит потому, что вы можете сделать это sudo su user_name и затем запустил команду экрана.

есть 2 способа это исправить.

  1. войдите непосредственно в "user_name" через ssh.
  2. сменить оболочку путем ввода script /dev/null как и затем введите screen