2014-01-24 43 views
11

早上好, 我有問題。我想用一個腳本作爲用戶「XYZ」在屏幕上啓動一個程序。 這是我的短格式腳本:屏幕無法打開您的終端'/ dev/pts/0' - 請檢查

# 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 

我想連接的屏幕,但我得到了這一點。

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

我做錯了什麼?

回答

18

要解決該問題,請嘗試運行script /dev/null作爲用戶su以啓動screen之前。

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

更多關於它:

+0

我知道這...但隨後同樣的錯誤 '的/ dev/PTS/2' 出現 –

+1

@FabianHarmsen:我見更新。試試這個吧,請 –

+0

@Ingor Chubin我無法啓動服務器,但我已經在我的問題中設置了compte腳本,可能有幫助 –