tmux开放终端失败:不是终端

时间:2014-08-08 16:21:59

标签: shell tmux systemd

我有一个shell脚本,它作为服务启用,以启动多个shell脚本,例如。

service started script -> script1, script2 ,script3 

script1应该在tmux窗口中打开一个程序,如果我通过./script1.sh手动启动脚本,它确实可以正常工作,但是当通过服务启动脚本启动时它没有出现上述错误:

open terminal failed: not a terminal

为什么会这样?

2 个答案:

答案 0 :(得分:14)

已经有一个答案here,但我认为this link总结得更好。简而言之,使用-t标志:

ssh -t host tmux attach

如果您想将其设置为.ssh/config文件,请在ssh_config联机帮助页中查看RequestTTY选项:

 RequestTTY
         Specifies whether to request a pseudo-tty for the session.  The
         argument may be one of: ``no'' (never request a TTY), ``yes''
         (always request a TTY when standard input is a TTY), ``force''
         (always request a TTY) or ``auto'' (request a TTY when opening a
         login session).  This option mirrors the -t and -T flags for
         ssh(1).

答案 1 :(得分:3)

我认为问题是该服务没有关联的tty。我找到的解决方法是将脚本中的tmux调用更改为

tmux new-session -s username -d

(用户名为启动该服务的用户)