Help us understand the problem. What is going on with this article?

systemdで既存のunitを編集する2つの方法

More than 3 years have passed since last update.

はじめに

systemdを使っていて、以下のような理由でunitファイルを編集したくなることがあります。

  • 起動用のコマンドラインオプションを編集したい
  • 起動時に独自のフックを入れたい
  • unitファイルがバグってて起動できない

ここでは、systemdで既存のunitを編集するための2つの方法を紹介します。

unitファイルの差分だけを書く

個人的にはこちらの方法をおすすめします。
なぜなら、ほとんどの場合は設定を1〜2個編集するだけで済むはずで、新たにunitファイルを作るのはやりすぎだと思うためです。

この方法でnginx.serviceを編集したい場合は以下のコマンドを実行します。

# systemctl edit nginx.service

このコマンドを入力するとエディタが立ち上がるので差分を書いて、保存して終了します。
差分は/etc/systemd/system/<unit名>.d/override.confに保存されます。

unitファイルのコピーを編集する

unitファイルのコピーを/etc/systemd/systemに作成して、それを編集する方法です。
編集箇所がかなりの量になる場合はこちらが楽かもしれません。
デメリットとして、前述の差分を書く方法とは違い、こちらは1からunitファイルを作るのと変わらないためバージョンアップ等に対応できない点があります。

この方法でnginx.serviceを編集したい場合は以下のコマンドを実行します。

# systemctl edit --full nginx.service

daemon-reloadの必要性

この2つの方法では、編集後に自動的に# systemctl daemon-reloadが実行されるので別途実行する必要はありません。

ハマりそうな点について

[Service]ExecStartを編集する際には、以下のようにすると既存の設定を上書きできます。

[Service]
ExecStart=
ExecStart=新しい設定

参考

Arch Wikiの「Editing provided unit files」の項目
https://wiki.archlinux.org/index.php/Systemd#Editing_provided_unit_files

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした