CoreOS: 시작 시 사용자 정의 스크립트를 한 번만 실행

CoreOS: 시작 시 사용자 정의 스크립트를 한 번만 실행

저는 다음 CoreOS v1688.5.3 [Rhyolite] 서버를 사용하고 있으며 서버가 시작될 때 특정 Python 스크립트를 한 번만 실행해야 한다는 특정 요구 사항이 있습니다. 이를 달성하는 가장 좋은 방법은 무엇입니까?

답변1

/etc/crontab가장 쉬운 방법은 다음 작업에서 생성하는 것입니다.

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

더 많은 정보를 얻으실 수 있습니다.사람 5 크론탭.

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 시작하기

관련 정보