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
また、見ることができますシステム削除のオーバーライド
答え2
以下を使用してシステム単位のファイルを上書きできます。
systemctl edit mysqld.service
上書きファイルのすべての文が優先的に適用されます。