CoreOS:在启动时仅运行一次自定义脚本

CoreOS:在启动时仅运行一次自定义脚本

我正在使用以下 CoreOS v1688.5.3 [Rhyolite] 服务器,并且我有一个特定的要求,即当服务器启动时,我必须仅运行一次特定的 python 脚本。实现这一目标的最佳方法是什么?

答案1

/etc/crontab最简单的方法是在下一个任务中创建:

@reboot /path/to/your/python/script.sh

您可以从以下位置获取更多信息人5 crontab

CoreOS 没有/etc/crontab.


另一种方法是创建系统定时器。关于 systemd-timer 的例子你可以从我关于 systemd 的回答中得到:使用 systemd-shutdownd 计划

systemd-timer 的简单示例位于/etc/systemd/system/example.timer

[Unit]
Description=Run once at system boot

[Timer]
# You may chose one of this triggers
OnBootSec=0min # run after system boot
OnStartupSec=0min # run after systemd was started

[Install]
WantedBy=timers.target # target in wich timer will be installed

答案2

使用 Systemd 是最自然、最好的方法:

您需要为您的服务创建一个单元/etc/systemd/system/yourservice.service

[Unit]
Description=your service name

[Service]
Type=oneshot #or simple
ExecStart=/path/to/your/script.py

[Install]
WantedBy=multi-user.target

要使服务能够在启动时运行,您需要运行sudo systemctl enable yourservice.service(添加--now标志以立即启动脚本)

您不需要提供太多输入,但您可以在单元文件中使用许多其他选项。查看man systemd.serviceman systemd.unit了解更多信息。

这里还有 CoreOS 文档的链接:开始使用 systemd

相关内容