我正在使用以下 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.service
并man systemd.unit
了解更多信息。
这里还有 CoreOS 文档的链接:开始使用 systemd