私は次の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を始めよう