CoreOS: executa um script personalizado, apenas uma vez, no momento da inicialização

1

Estou usando o seguinte servidor CoreOS v1688.5.3 [Rhyolite] e tenho um requisito específico em que eu teria que executar um determinado script python apenas uma vez, quando o servidor é inicializado. Qual seria a melhor maneira de conseguir isso?

    
por Varun 24.05.2018 / 09:02

2 respostas

0

O mais simples de conseguir isso é criar na próxima tarefa /etc/crontab :

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

Mais informações você pode obter em man 5 crontab .

O CoreOS não tem /etc/crontab .

Outra maneira é criar systemd-timer . Exemplo sobre o systemd-timer que você pode obter da minha resposta sobre o systemd: Use systemd-shutdownd agendar .

Exemplo simples de systemd-timer que está localizado em /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
    
por 24.05.2018 / 11:20
0

Usar o Systemd é a maneira mais natural e melhor de ir:

Você precisa criar uma unidade para seu serviço em /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

Para permitir que o serviço seja executado na inicialização, você precisa executar sudo systemctl enable yourservice.service (adicione --now flag para iniciar o script imediatamente)

Você não dá muita entrada, mas há muitas outras opções que você pode usar no arquivo de unidade. Confira man systemd.service e man systemd.unit para mais informações.

Este é também um link para os documentos do CoreOS: Introdução ao systemd

    
por 24.05.2018 / 10:39

Tags