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