当我连接远程时我总是运行
cd ~/w/logs
tail -f some_file.log
但当我这样做
ssh host 'cd ~/w/logs; tail -f some_file.log'
一切正常,但在 CTRL+C 之后连接丢失。(相似的问题,但不包括 CTRL+C 问题)
远程登录后如何运行命令?
答案1
您需要做两件事。首先是在 tail 退出后(最后bash
)运行交互式 bash,然后您需要分配远程 TTY,以便会话变为交互式(-t
交换机):
ssh -t host 'cd ~/w/logs; less +F some_file.log; exec $SHELL'
exec
-- 如果指定了命令,它将替换 shell。不会创建新进程