Systemdユニットの"enable"と"activate"の違いを誰かが私に明確にできますか?ユニットに[Install]セクションがある場合はenableを呼び出す必要がありますが、それ以外の場合はactivateで十分です。
これは起動プロセスでどのように処理されましたか? Systemdは自動的に正しい決定をしますか?
サービスをstart
(アクティブ化)するには、systemctl start my_service.service
コマンドを実行します。これにより、現在のセッションですぐにサービスが開始されます。
ブート時にサービスをenable
するには、systemctl enable my_service.service
を実行します。
Enable 1つ以上のユニットまたはユニットインスタンス。これにより、示されたユニットファイルの「[Install]」セクションにエンコードされたシンボリックリンクのセットが作成されます。シンボリックリンクが作成された後、変更が即座に考慮されるようにするために、システムマネージャーの設定が再ロードされます(daemon-reloadと同等の方法で)。
/usr/lib/systemd/system/
にはinit
スクリプトが含まれています。systemctl enable
と入力して起動時にサービスを開始すると、/etc/systemd/system/
にリンクされます。
#systemctl enable my_service.service
ln -s '/usr/lib/systemd/system/my_service.service' '/etc/systemd/system/multi-user.target.wants/my_service.service'
systemctl enable
は、次回の再起動時にサービスを開始するようにシステムを構成します(正しいターゲット状態に関する警告など)。
systemctl start
サービスをすぐに開始(アクティブ化)します。
したがって、サービスを今すぐに再起動するたびに開始する場合は、サービスをenable
andstart
する必要があります。