web-dev-qa-db-ja.com

tmux open terminal failed:terminalではありません

複数のシェルスクリプトを開始するサービスとして有効になっているシェルスクリプトがあります。

service started script -> script1, script2 ,script3 

script1はtmuxウィンドウでプログラムを開く必要があり、./script1.shを使用して手動でスクリプトを開始しても問題なく機能しますが、サービス開始スクリプトを介して起動時に開始すると、上記のエラーは発生しません。

open terminal failed: not a terminal

なんでこんなことが起こっているの?

20
STiGYFishh

問題は、サービスにttyが関連付けられていないことです。私が見つけた回避策は、スクリプトのtmux呼び出しを次のように変更することです

tmux new-session -s username -d

(サービスを開始したユーザーのユーザー名)

7
7hibault

すでに回答があります ここ ですが このリンク 要約したほうがいいと思います。簡単に言えば、-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).
16
lorenzog