从 Amazon Linux 迁移到 Ubuntu (EC2) 后出现 SSH 问题

从 Amazon Linux 迁移到 Ubuntu (EC2) 后出现 SSH 问题

我有一个脚本,用于启动和停止 EC2 实例上的 tinyproxy。该脚本的核心(除了我这边的一些网络之外)是 2 个命令:

ssh -t $PROXY_HOST sudo '/etc/init.d/tinyproxy start'
ssh -t $PROXY_HOST sudo '/etc/init.d/tinyproxy stop'

其中 $PROXY_HOST 在 ~/.ssh/confing 中配置

host MyHost
    HostName <real ip here>
    User ubuntu
    IdentityFile <path is here>
    ServerAliveInterval 60
    ServerAliveCountMax 4

在 Amazon Linux 上一切都很好,但是迁移到 Ubuntu 后出现了一个问题:

  • 启动/停止 tinyproxy 的两个脚本都在 EC2 机器上本地运行

  • 停止脚本的远程工作方式与在 Amazon Linux 上一样 - 执行后没有正在运行的 tinyproxy 进程

  • 启动脚本无法远程工作

EC2 AMI 基于 ubuntu-trusty-14.04-amd64-server

关于我应该从哪里开始挖掘,有什么提示吗?

附言:是的,迁移后,我将 ~/.ssh/config 中的默认用户从 ec2-user 更改为 ubuntu

编辑:根据 muru 的要求添加了信息

本地和远程运行的输出相同

+ PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
  + CONFIG=/etc/tinyproxy.conf
  + DAEMON=/usr/sbin/tinyproxy
  + DESC=tinyproxy
  + FLAGS=
  + NAME=tinyproxy
  + [ -r /etc/default/tinyproxy ]
  + test -f /usr/sbin/tinyproxy
  + set -e
  + [ start != stop ]
  + [ -f /etc/tinyproxy.conf ]
  + awk {print $2}
  + grep -i ^User[[:space:]] /etc/tinyproxy.conf
  + USER=nobody
  + awk {print $2}
  + grep -i ^Group[[:space:]] /etc/tinyproxy.conf
  + GROUP=nogroup
  + sed -e s/"//g
  + awk {print $2}
  + grep -i ^PidFile[[:space:]] /etc/tinyproxy.conf
  + PIDFILE=/var/run/tinyproxy/tinyproxy.pid
  + dirname /var/run/tinyproxy/tinyproxy.pid
  + PIDDIR=/var/run/tinyproxy
  + [ -n /var/run/tinyproxy -a /var/run/tinyproxy != /var/run ]
  + [ ! -d /var/run/tinyproxy ]
  + [ nobody ]
  + chown nobody /var/run/tinyproxy
  + [ nogroup ]
  + chgrp nogroup /var/run/tinyproxy
  + echo -n Starting tinyproxy:⋅
  Starting tinyproxy: + start-stop-daemon --start --quiet -o --exec /usr/sbin/tinyproxy --
  + echo tinyproxy.
  tinyproxy.
  + exit 0

答案1

看起来 Amazon Linux 和 EC2 上的 Ubuntu 14.04 在默认处理 SIGHUP 方面存在一些差异。因此,基本上添加禁止解决问题:

ssh -t $PROXY_HOST sudo 'nohup /etc/init.d/tinyproxy start'

相关内容