【问题标题】:Running a script on each reboot of EC2每次重启 EC2 时运行脚本
【发布时间】:2021-01-08 20:32:50
【问题描述】:

我正在运行一个 Amazon Linux EC2 实例。它是一个 node.js 服务器。我需要在每次重启/启动时运行以下命令:

sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to 8080

上面的命令将端口 80 重定向到端口 8080。

我怎样才能做到这一点?

【问题讨论】:

  • 另外,为什么不将你的 node.js 服务器改为在 8080 端口上运行呢?
  • 这取决于您使用的 Linux 发行版。这可能会帮助你Run script on start up
  • @chedabob node.js 服务器确实在端口 8080 上运行,但 AWS 在端口 80 上有 HTTP 流量
  • A 尝试将 bash 脚本放入 /etc/init.d/ 并将其修改为可执行,但没有成功。

标签: node.js amazon-ec2 command startup


【解决方案1】:

我已经通过将我的脚本放在 /etc/rc.local 文件中解决了这个问题

这个文件在我需要的所有其他初始化脚本之后执行。

【讨论】:

  • 您无法访问 root 用户。当您处于生产状态时,它会解决问题但不会解决问题。
【解决方案2】:

经过大量试验,以下工作:

crontab -e
     @reboot cd /home/ec2-user/somedir/ && ./run.sh  > output1.txt

vi ./run.sh
     ./run2.sh 2>&1 > output2.txt &

./run2.sh
    # this had actual commands, it also had a nohup command

【讨论】:

  • 但这将适用于 root 用户而不是 ec2-user ,你认为你可以在 prod 中访问 root 使用
  • 对。以下答案对您有用吗? stackoverflow.com/a/30412538/984471
猜你喜欢
  • 2017-08-20
  • 1970-01-01
  • 2019-04-07
  • 2020-10-31
  • 2011-09-22
  • 1970-01-01
  • 1970-01-01
  • 2018-09-10
  • 1970-01-01
相关资源
最近更新 更多