Я использую следующий сервер CoreOS v1688.5.3 [Rhyolite], и у меня есть особые требования, когда мне придется запускать определенный скрипт Python только один раз, когда сервер загружается. Каков наилучший способ достичь этого?
Простейшим способом было добиться этого – создать в /etc/crontab
следующую задачу:
@reboot /path/to/your/python/script.sh
Более подробную информацию вы можете получить от человека 5 crontab .
CoreOS не имеет /etc/crontab
.
Другой способ – создать системный таймер . Пример о systemd-timer вы можете получить из моего ответа о systemd: Использовать расписание systemd-shutdownd .
Простой пример системного таймера, который находится по адресу /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
Использование 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