我需要用python编写一个脚本,该脚本在重新启动之前就停止在EC2实例中运行的服务。 这里应该采用什么方法?
假设服务名称为abc。
要手动停止此服务,请执行:
service abc stop
我想在实例重新启动之前将其自动化。
帮我
答案 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中关闭服务?