【发布时间】:2014-10-02 04:39:04
【问题描述】:
我有一个作为服务启用的 shell 脚本来启动多个 shell 脚本,例如
service started script -> script1, script2 ,script3
script1 应该在 tmux 窗口中打开一个程序,如果我通过 ./script1.sh 手动启动脚本,它确实可以正常工作,但是当通过服务启动脚本启动时,它不会出现上述错误:
open terminal failed: not a terminal
为什么会这样?
【问题讨论】:
-
一个服务通常没有关联的 tty(终端)。它是一个多用户操作系统,还没有人登录,它会写入谁的终端?为什么这些服务需要交互式外壳?
-
有很多脚本在做不同的事情备份等等......但是有问题的脚本在 tmux 窗口中运行我的世界服务器
-
好的,发布脚本的 tmux 位,默认情况下,如果您在那里有一个新会话,它将尝试附加到当前 tty(因此错误) '将需要添加一个 -d 参数来防止这种情况
-
tmux new -s minecraft "java -args minecarft.jar nogui"
-
试试 tmux new -d -s minecraft "java -args minecarft.jar nogui"