tmux open terminal failed: not a terminal

STiGYFishh picture STiGYFishh · Aug 8, 2014 · Viewed 20.6k times · Source

I have a shell script that is enabled as service to start multiple shell scripts e.g.

service started script -> script1, script2 ,script3 

script1 should open a program in a tmux window, and it does work just fine if I manually start the script via ./script1.sh, however when started at boot via the service started script it does not with the above error:

open terminal failed: not a terminal

Why is this happening?

Answer

lorenzog picture lorenzog · Jun 8, 2015

There is an answer already here, but this link I think summarises it better. In a nutshell, use the -t flag:

ssh -t host tmux attach

If you want to set it into your .ssh/config file, look in the ssh_config manpage for the RequestTTY option:

 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).