どのプロセスが私の設定を変更しましたか?

どのプロセスが私の設定を変更しましたか?

2つのインタフェースを動的に設定するコマンドip route addifconfigsystemctlサービスarpがあります。ethtoolいずれにしても、数秒/分後にランダムに設定が消えます(IPが割り当てられなくなり、ルートとarpエントリが消えます)。

この問題をどのようにデバッグし、私の設定が消えるのですか?

[Unit]
After=network-online.target

[Service]
ExecStart=/usr/local/bin/routingsf.sh enp4s0f0 enp4s0f1

[Install]
WantedBy=network-online.target

Avahi-daemon望ましくないが、放送のためにパケットを送信するなどのたわごとプロセスがたくさんあります。これらのインターフェイスはテスト目的で使用され、これらのインターフェイスを介して不要なパケットを送信したくありません。

ベストアンサー1

インターフェイス列がある場合、nmcli device statusNetworkManager はその列を引き継ぐことを意味します。disconnectedSTATEenp4s0f0enp4s0f1

ルートとして次のコマンドを実行します。

nmcli device set enp4s0f0 managed no
nmcli device set enp4s0f1 managed no

NetworkManager にこれらのデバイスに手を触れないように指示します。これにより問題が解決します。通常、NetworkManagerは再起動後も維持されるようにこれらの設定を自動的に保存する必要がありますが、これは使用しているLinuxディストリビューションによって異なります。

その後、nmcli device statusこれらのネットワークインターフェイスのステータスはとして表示される必要があり、これはunmanagedNetworkManagerの干渉なしにこれらのインターフェイスを手動で設定できることを示します。


システムサービスに関する追加情報:routingsf.sh永続的に実行する項目を含めずに、およびなどのコマンドを「一度設定すると完了」した場合は、ip route addサービスファイルセクションに数行を追加できます。ifconfigarpethtool[Service]

Type=oneshot
RemainAfterExit=yes

サービスタイプを指定しないと、systemdは1つを想定しますType=simple。つまり、開始されたプロセスは、意図ExecStart=的に停止するまで永久に実行されると予想されます。これを怠ると、routingsf.shsystemdはExecStartコマンドが終了することを確認し、サービスを失敗としてマークします。

Type=oneshot+組み合わせは、RemainAfterExit=yesスクリプトがいくつかの操作を実行してから終了すると予想されることをsystemdに通知し、スクリプトが正常に終了すると、systemdはサービスステータスを「実行中」としてマークする必要があります。ExecStop=標準コマンドを使用してこれらの設定を簡単にオフにするには、そのsystemctlオプションを追加するオプションがあります。

おすすめ記事