如何使用userdata在AWS上启动linux中的init.d等系统服务

如何使用userdata在AWS上启动linux中的init.d等系统服务,linux,bash,amazon-web-services,amazon-ec2,ubuntu-16.04,Linux,Bash,Amazon Web Services,Amazon Ec2,Ubuntu 16.04,我将每天早上启动服务器(ubuntu),晚上停止,这是一项日常任务。我只想在第二天早上服务器重新启动后启动服务。 我曾经在aws中将脚本添加到“用户数据”中,但它对我没有帮助。如果我需要使用用户数据运行其他命令,请告诉我。脚本是什么样子的。 我曾经 #!/bin/bash sudo service <service name> start #/bin/bash sudo服务启动 默认情况下,用户数据在实例第一次启动时执行一次。这里有一个类似的问题: 如果需要自动重新启动服务,但实例

我将每天早上启动服务器(ubuntu),晚上停止,这是一项日常任务。我只想在第二天早上服务器重新启动后启动服务。 我曾经在aws中将脚本添加到“用户数据”中,但它对我没有帮助。如果我需要使用用户数据运行其他命令,请告诉我。脚本是什么样子的。 我曾经

#!/bin/bash
sudo service <service name> start
#/bin/bash
sudo服务启动

默认情况下,用户数据在实例第一次启动时执行一次。这里有一个类似的问题:

如果需要自动重新启动服务,但实例已配置。您可以使用
mime multipart
将新脚本附加到用户数据,并将cloud\u final\u模块设置为
[scripts user,always]
,以便每次运行启动脚本。您可以将以下内容设置为用户数据,然后启动实例:

Content-Type: multipart/mixed; boundary="//"
MIME-Version: 1.0

--//
Content-Type: text/cloud-config; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="cloud-config.txt"

#cloud-config
cloud_final_modules:
- [scripts-user, always]

--//
Content-Type: text/x-shellscript; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="userdata.txt"

#!/bin/bash
sudo service abc DEV start
--//

默认情况下,用户数据在实例第一次启动时执行一次。这里有一个类似的问题:

如果需要自动重新启动服务,但实例已配置。您可以使用
mime multipart
将新脚本附加到用户数据,并将cloud\u final\u模块设置为
[scripts user,always]
,以便每次运行启动脚本。您可以将以下内容设置为用户数据,然后启动实例:

Content-Type: multipart/mixed; boundary="//"
MIME-Version: 1.0

--//
Content-Type: text/cloud-config; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="cloud-config.txt"

#cloud-config
cloud_final_modules:
- [scripts-user, always]

--//
Content-Type: text/x-shellscript; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="userdata.txt"

#!/bin/bash
sudo service abc DEV start
--//


你为什么不简单地在Ubuntu中配置服务,让它在启动时启动?服务器已经配置好了,我只想在第二天服务器重新启动时启动服务。这样我就不必进去手动重新启动服务。如果服务器在启动时没有启动关键服务,听起来好像服务器没有完全“配置”。服务器在init.d中有一个服务,通常当我们向其部署新代码时,我们会停止服务,复制代码,然后手动重新启动服务。但是,由于服务器每天早上都会重新启动,因此需要有人启动服务。所以我想看看我们是否可以在每次服务器重新启动时启动服务我不知道这与您可以将服务配置为在启动时自动启动这一事实有什么关系,它将完全按照您的需要工作,与其尝试用用户数据拼凑一些服务启动脚本,还不如简单地将Ubuntu中的服务配置为在启动时启动?服务器已经配置好了,我只想在第二天服务器重新启动时启动服务。这样我就不必进去手动重新启动服务。如果服务器在启动时没有启动关键服务,听起来好像服务器没有完全“配置”。服务器在init.d中有一个服务,通常当我们向其部署新代码时,我们会停止服务,复制代码,然后手动重新启动服务。但是,由于服务器每天早上都会重新启动,因此需要有人启动服务。所以我想看看我们是否可以在每次服务器重新启动时启动服务我不知道这与您可以将服务配置为在启动时自动启动这一事实有什么关系,它将完全按照您的需要工作,我不知道这个Mime多部分,如果你不介意的话,你能给我简要介绍一下这个代码是怎么做的吗,就像我看到的cloud-config.txt和userdata.txt一样,另外,我应该使用所有相同的东西还是编辑您提供的任何代码您可以编辑最后第二行
/bin/echo“sudo service abc DEV start”>/etc/rc.local
,或者您可以尝试更改为
sudo service abc DEV start
,以查看它是否总是在重新启动后运行该命令。我是否只需要使用最后两行代码,或者使用您提供的全部代码。我问这个问题是因为我不了解mime多部分。还想知道我在代码中看到的两个.txt是什么,谢谢你编辑了我的答案。你需要一切<代码>[scripts user,always]将始终运行您的脚本。您好,谢谢它确实起了作用,但如果您能给我简要介绍一下此代码的工作原理,那将更有帮助。所以我可以在将来实现类似的东西。我不知道这个Mime多部分,如果你不介意的话,你能给我简要介绍一下这个代码在做什么吗,正如我看到的cloud-config.txt和userdata.txt,另外,我应该使用所有相同的东西还是编辑您提供的任何代码您可以编辑最后第二行
/bin/echo“sudo service abc DEV start”>/etc/rc.local
,或者您可以尝试更改为
sudo service abc DEV start
,以查看它是否总是在重新启动后运行该命令。我是否只需要使用最后两行代码,或者使用您提供的全部代码。我问这个问题是因为我不了解mime多部分。还想知道我在代码中看到的两个.txt是什么,谢谢你编辑了我的答案。你需要一切<代码>[scripts user,always]将始终运行您的脚本。您好,谢谢它确实起了作用,但如果您能给我简要介绍一下此代码的工作原理,那将更有帮助。所以我可以在将来实现类似的事情。