システム単位のファイル設定を上書きする方法は?

システム単位のファイル設定を上書きする方法は?

Arch LinuxサーバーにMySQLをインストールしました。データディレクトリを私のRAIDボリュームがマウントされている/ homeの下の場所に移動しました。 systemdデバイスにはその設定が含まれているため、デフォルトではmysqldはこの設定で起動しないことがわかりましたProtectHome=true

上書きしたいただこの設定。ExecStartパッケージがアップグレードされたときに変更される場合に備えて、これらのコマンドや同様のコマンドを再指定したくありません。

/etc/systemd/system呼び出しサイトで簡単なファイルを生成しようmysqld.serviceとし、次の行を追加しました。

[Service]
ProtectHome=false

サービスが/ etcにあるように見えるため、機能しません。変える、システムサービスには適用されません。

/usr/lib/systemd/systemのファイルを直接変更せずに、このようにsystemdユニットファイルの設定を上書きする方法はありますか? (これは現在の一時修正ですが、パッケージが更新されると最終的に復元されます。)

ベストアンサー1

systemctl edit作成します入れるほとんどの設定をオーバーライドできるファイルですが、これらのファイルにはいくつかの詳細があります。

挿入ファイルの場合、たとえばリストとして検証される(依存関係ではない)設定(AssertPathExists=サービスExecStart=単位など)からアイテムを削除するには、まずリストを消去する必要があります。次に、リセット - 削除されたアイテムを除くすべてのアイテムを除いて追加します。

#/etc/systemd/system/httpd.service.d/local.conf
[Unit]
AssertPathExists=
AssertPathExists=/srv/www

依存関係(After=など)は空のリストにリセットできないため、依存関係はドロップインからのみ追加できます。依存関係を削除するには、ユニット全体を上書きする必要があります。

セル全体を含めるには、コピーしていない場合はsystemctl edit --fullコピーを作成して編集できます。/etc

また、見ることができますシステム削除のオーバーライド

おすすめ記事