如何在启动Amazon EC2实例时自动启动Web服务?

时间:2011-03-15 13:53:40

标签: apache web-services amazon-ec2

如何将服务设置为在启动实例时自动启动?

目前,我必须通过ssh连接到实例并运行sudo service httpd startsudo service mysqld start来手动启动它们。

7 个答案:

答案 0 :(得分:75)

您可以在Amazon Linux EC2实例上发出以下命令,而不是重新开始使用新的AMI ......

sudo chkconfig mysqld on
sudo chkconfig httpd on

您可以在&之前检查设置。使用以下命令启用这些服务后启动...

sudo chkconfig --list mysqld
sudo chkconfig --list httpd

仅使用...查看所有服务。

sudo chkconfig --list

注意如果您在chkconfig位于root的路径中遇到任何问题,可以尝试指定这样的完整路径......

sudo /sbin/chkconfig mysqld on
sudo /sbin/chkconfig httpd on

答案 1 :(得分:2)

如果您使用 Amazon Linux 2 AMI ,则需要执行以下步骤:

  1. 在AMI2中,他们使用systemctl来管理服务,以检查服务是否已安装在您的计算机上 2。systemctl list-units --type=service通过此命令检查是否列出了tomcat.service
  2. sudo systemctl enable tomcat.service要使雄猫能够在启动时启动
  3. systemctl is-enabled tomcat.service检查是否启用了tomcat以便在启动Linux系统时启动

之后,您可以重新启动linux系统,tomcat将启动。

有关systemctl Click Here

的更多信息

答案 2 :(得分:1)

ReactJS on Amazon Linux2 进程: 在 EC2 上安装 ReactJS 并在启动时运行应用程序:

  1. 连接到 EC2 实例后,安装 NodeJS。按照本教程: https://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/setting-up-node-on-ec2-instance.html
  2. 使用本教程安装 httpd 服务器:https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Tutorials.WebServerDB.CreateWebServer.html
  3. 我使用 Git Clone 将 ReactJS 应用程序克隆到 /home/ec2-user。
  4. 使用命令“npm install yarn -g”安装Yarn
  5. 在克隆的项目中执行以下命令:“Yarn”然后“Yarn build”
  6. 现在使用以下命令复制构建文件夹:cp -a /build/。 /var/www/html/
  7. 现在转到 /var/www/html/ 这里使用 vi 创建一个 .htaccess 文件并包含以下内容:“Options -MultiViews 重写引擎开启 RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^ index.html [QSA,L]” 使用 :wq
  8. 保存文件
  9. 现在在 /etc/httpd/conf/httpd.conf 中搜索具有“/var/www/html”属性的目录并将“AllowOverride None”更改为“AllowOverride All”。现在打开浏览器并输入 http://ec2-ip 或 http://ec2-url 您将看到默认页面
  10. 在 AmazonLinux2 上输入命令“systemctl enable httpd”,然后输入“systemctl start httpd”。现在,您可以在启动时访问该应用程序,而不是一次又一次地运行该应用程序。 你已经完成了。

答案 3 :(得分:0)

我的一位客户想要执行此任务,并且我已经通过以下方法成功完成了

以下命令在实例启动时自动启动服务。

自动启动apache / httpd

1) systemctl enable httpd

自动启动Redis服务

2) systemctl enable redis

我已在以下位置将SELINUX设置为禁用

3) /etc/sysconfig/selinux

对于mysql服务

sudo chkconfig mysqld on
sudo chkconfig httpd on

答案 4 :(得分:0)

我遇到了类似的问题,这是我建议的解决方案, 您需要在/etc/init.d目录下创建一个文件,例如,名称为tomcat,并根据系统安装更改JAVA_HOME和CATALINA_HOME参数。 设置完此文件后,请运行以下命令:

sudo chkconfig <file-name> on

您在/etc/init.d中创建的文件在哪里,在我的情况下是tomcat。

[ec2-user@ip-<myip> init.d]$ cat tomcat
#!/bin/bash
# description: Tomcat Start Stop Restart
# processname: tomcat
# chkconfig: 234 20 80
JAVA_HOME=/opt/apache-tomcat-7.0.96
export $JAVA_HOME
PATH=$JAVA_HOME/bin:$PATH
export PATH
CATALINA_HOME=/opt/apache-tomcat-7.0.96

case $1 in
start)
sh $CATALINA_HOME/bin/startup.sh
;;
stop)
sh $CATALINA_HOME/bin/shutdown.sh
;;
restart)
sh $CATALINA_HOME/bin/shutdown.sh
sh $CATALINA_HOME/bin/startup.sh
;;
esac
exit 0
chmod 755 tomcat
chkconfig --add tomcat
chkconfig --level 234 tomcat on
chkconfig --list tomcat
service tomcat start

答案 5 :(得分:0)

Amazon Linux 1和Amazon Linux 2不同。

Amazon Linux 1

在AmazonLinux1中,使用chkconfig命令。

$ sudo chkconfig mysqld on
$ sudo chkconfig httpd on

Amazon Linux2

在AmazonLinux2中,引入了systemd。因此,chkconfig是旧命令。您应该使用systemctl。这是systemd的控制命令。

$ sudo systemctl enable mysqld
$ sudo systemctl enable httpd

您可以通过is-enabled命令确认是否启用了该功能。

$ sudo systemctl is-enabled mysqld
enabled

chkconfig命令请求将转发到systemctl

$ chkconfig mysqld on
Note: Forwarding request to 'systemctl enable mysqld.service'.

答案 6 :(得分:-3)

要么使用任何已有的LAMP AMI,它们都将作为服务运行。

一个示例是BitNami,当您触发ec2实例时,您会发现其他几个。