저는 다음 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 시작하기