需要在重新启动之前停止AWS EC2实例中的服务

时间:2018-11-19 14:10:22

标签: python linux amazon-web-services amazon-ec2

我需要用python编写一个脚本,该脚本在重新启动之前就停止在EC2实例中运行的服务。 这里应该采用什么方法?

假设服务名称为abc。

要手动停止此服务,请执行:

  service abc stop

我想在实例重新启动之前将其自动化。

帮我

2 个答案:

答案 0 :(得分:1)

cron计划程序允许您使用@reboot代替计划字符串。因此,编写脚本,然后crontab -e并添加以下内容:

@reboot /path/to/python /path/to/reboot_script.py

对于重新启动脚本,python并不是您的最佳选择。我会使用bash脚本编写它,看起来像这样:

#!/bin/bash

service abc stop

如果必须使用python,则可以使用invoke:

from invoke import run
run('service abc stop', hide=True, warn=True)

编辑:

要在重新启动之前运行此命令,请创建一个名为K99kill_service的shell脚本并将其添加到您的/etc/rc6.d目录中。这些脚本在重新引导或关闭之前执行。请务必按照上面的名称进行命名,以确保它在正确的时间运行并且不会干扰其他关闭脚本。

答案 1 :(得分:0)

礼貌:https://opensource.com/life/16/11/running-commands-shutdown-linux

请参阅链接,它非常详细地说明了如何在SysVinit和Systemd关闭之前如何在linux中关闭服务?