BLOGTIMES
2017/04/13

systemd で既存のユニットの設定を変更するには

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

CentOS 7 (というか、RHEL 7 )からデーモンの起動は SysVinit/Upstart に代わって systemd が使われるようになりました。

デーモンの依存関係や、起動・終了のためのコマンド、オプション等の設定については /usr/lib/systemd/system にあるユニットファイルで制御されています。デーモンの設定をカスタマイズしたいような場合に、このユニットファイルを編集したいという誘惑に駆られますが、このファイルを直接書き換えることは推奨されていません。

このファイルは root であれば編集することができ、systemctl daemon-reload をかけると変更も正常に反映されるのですが、将来、忘れた頃に大きな落とし穴にはまります。というのも、このファイルはデーモンが入っている rpm から提供されたものなので、yum などでうっかりデーモンをアップデートしたりすると、ユニットファイルが rpm に入っているもので上書きされ、カスタマイズした部分がいつのまにか先祖返り・・・という悲劇が待っています。(さっき実際に自分でハマって参りました。

正しいユニットファイルの変更手順については RHEL 7 マニュアルの以下の部分に詳細な記載があります。

ポイントは /usr/lib/systemd/system にあるファイルを /etc/systemd/system にコピーしてから編集を行うこと。systemd は /usr/lib/systemd/system でも /etc/systemd/system/ でも、どちらのディレクトリからでもユニットファイルを認識しますが、検索順位は /etc/systemd/system/ の方が上位なので、同名のユニットだと /etc/systemd/system/ の方が優先されるようです。

設定ファイルのコピーの方法は具体的には以下のようになります。

cp -a /usr/lib/systemd/system/name.service /etc/systemd/system

    トラックバックについて
    Trackback URL:
    お気軽にどうぞ。トラックバック前にポリシーをお読みください。[policy]
    このエントリへのTrackbackにはこのURLが必要です→https://blog.cles.jp/item/9272
    Trackbacks
    このエントリにトラックバックはありません
    Comments
    愛のあるツッコミをお気軽にどうぞ。[policy]
    古いエントリについてはコメント制御しているため、即時に反映されないことがあります。
    コメントはありません
    Comments Form

    コメントは承認後の表示となります。
    OpenIDでログインすると、即時に公開されます。

    OpenID を使ってログインすることができます。

    Identity URL: Yahoo! JAPAN IDでログイン