【CentOS7/systemdの設定】サービス(デーモン)の遅延起動

予備知識

systemd の Unit についてやサービス起動の依存関係、順序関係の仕組みについては以下を参照下さい。

【Linuxのサービス依存関係と順序関係】systemctl list-dependencies と systemd-analyze の見方
【Linuxのサービス依存関係と順序関係】systemctl list-dependencies と systemd-analyze の見方
systemctl list-dependencies コマンドは system...

もしサービスの起動順序を定義したいのであれば、上記URLを参考に、systemd の設定において Before= や After= で定義するのが推奨です。

これから紹介するのはあまり推奨ではありませんが、無理やりサービスを遅延起動させる方法です。

chronyd を遅延起動させてみる

通常時において、"systemd-analyze plot > plot.svg" コマンドにて生成した svg ファイルをブラウザで開いてみると、chronyd の起動は以下のように表示されます。

chronyd.service の起動時のコマンドは以下のように定義されています。

[root@localhost ~]# cat /usr/lib/systemd/system/chronyd.service
~~~
ExecStart=/usr/sbin/chronyd $OPTIONS
~~~

この ExecStart の実行コマンドに遅延するコマンドを入れてしまおうという作戦です。

[root@localhost ~]# cp -p /usr/lib/systemd/system/chronyd.service /etc/systemd/system/
[root@localhost ~]# vi /etc/systemd/system/chronyd.service
ExecStart=/usr/sbin/chronyd $OPTIONS

の箇所を以下のように変更します。

ExecStart=/usr/bin/bash -c "sleep 10; /usr/sbin/chronyd $OPTIONS"

すると systemd-analyze plot > plot2.svg の結果が以下のように変わりました。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする