CoreOS: запуск пользовательского скрипта, только один раз, во время загрузки

Я использую следующий сервер 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