我在网上看到了类似的问题,但没有一个答案有效,希望新的请求能够揭示答案。
我正在尝试在Linux机器上运行远程查询,我可以解决的问题是我保持与远程服务器的连接。
我在脚本中设置了-x所以我正在观看输出。 我的部分脚本在
下面ssh -tt $host.digital.domain.com << EOF
sudo su - foo
/apps/scripts/bar.sh
exit
EOF
脚本正确运行
[user@server ~]$ [foo@host ~]$ + rm -f '/tmp/files*'
但是窗口会在远程计算机上提示而不是退出。
[foo@host ~]$
我使用了-tt开关,因为我收到了tty错误 我也试图杀死pid,但这也不起作用。 进行脚本的唯一方法是让我'ctrl c'退出远程会话。
我试过在一行上运行ssh但是这没有用,可能是因为sudo,我不确定。
任何建议都会很棒。
感谢
答案 0 :(得分:1)
&#34; su&#34;命令你打开新的bash会话。如果你只写一个&#34;退出&#34;,你只能完成foo用户的会话。为了通过ssh连接打开会话,你应该写其他&#34;退出&#34;。
ssh -tt $host.digital.domain.com << EOF
sudo su - foo
/apps/scripts/bar.sh
exit #Exit foo session
exit #Exit ssh session
EOF
输出:
sshuser@prompt$ sudo su - foo
foo@prompt$ /apps/scripts/bar.sh
foo@prompt$ exit #Exit foo session
exit
sshuser@prompt$ exit #Exit ssh session
logout
Connection to $host.digital.domain.com closed.