Tho*_*ele 63 ssh terminal gnu-screen tty
我希望能够通过桌面上的单个 ssh 命令在远程服务器上启动屏幕会话。但是, screen 似乎需要一个终端,通过 ssh 运行命令时该终端不可用。
所以显而易见
ssh root@my.machine screen "tail -f /var/log/messages"
Run Code Online (Sandbox Code Playgroud)
(作为示例)不起作用,并给出
Must be connected to a terminal.
Run Code Online (Sandbox Code Playgroud)
我希望 ssh 在屏幕下启动命令,以便我稍后登录并附加到我将手动启动的屏幕会话。
Kje*_*sen 87
尝试使用 -t 选项进行 ssh
ssh -t root@my.machine screen "tail -f /var/log/messages"
Run Code Online (Sandbox Code Playgroud)
来自 ssh
-t 强制伪 tty 分配。这可用于执行任意
远程机器上的基于屏幕的程序,可以是
非常有用,例如,在实现菜单服务时。多个 -t
选项强制 tty 分配,即使 ssh 没有本地 tty。
Ala*_*dae 36
您可以使用:
ssh root@host screen -m -d "tail -f /var/log/messages"
Run Code Online (Sandbox Code Playgroud)
这将启动一个分离的屏幕,并在其上运行一个命令。
-m causes screen to ignore the $STY environment variable. With
"screen -m" creation of a new session is enforced, regardless
whether screen is called from within another screen session or
not. This flag has a special meaning in connection with the `-d'
option:
-d -m Start screen in "detached" mode. This creates a new session but
doesn't attach to it. This is useful for system startup
scripts.
Run Code Online (Sandbox Code Playgroud)
迟到的答案,但这就是我所做的,我创建了一个别名(我们称之为 t)来执行此操作:
ssh $MYSERVER -a -x -t screen -xRR -A -e^Zz -U -O
Run Code Online (Sandbox Code Playgroud)
这告诉ssh禁用代理和 X11 转发,并告诉screen附加到正在运行的会话,如果需要,启动一个新会话,^Z用作 breakout 命令,使用 UTF-8 并注意终端。
所有这一切意味着我可以打开一个终端,输入t它就会在 $MYSERVER 上打开我的屏幕会话。然后我可以打开另一个终端,做同样的事情,我得到另一个窗口到同一个会话。
在同一个屏幕会话中有多个终端窗口真的很棒,这样您就可以同时查看两个屏幕选项卡。
| 归档时间: |
|
| 查看次数: |
76015 次 |
| 最近记录: |