以前の起動/停止/ステータス初期化スクリプトをsystemdに移動したいと思います。
デフォルトで起動する方法は次のとおりです。
ifconfig eth0:vip 10.0.0.1/24 up
停止する:
ifconfig eth0:vip down
状態:
ifconfig | grep 'eth0:vip'
システムサービスユニットを作成しようとしています。
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/path/myscript start
ExecStop=/path/myscript stop
Restart=no
ただし、systemctl status
eth0:vipがダウンした時点を手動で検出する方法はありませんifconfig eth0:vip down
。
私のスクリプトがsystemdと互換性があるようにするにはどうすればよいですか?
答え1
本装置は規制に準拠しています。この意味で改善する点はありません。
System V initのスクリプトとは異なり、 systemctl status foo
systemdはユーザー定義のジョブ定義をまったくサポートしていません。実行中のデーモンのみを確認できます(または提供していない可能性があります)。init.d
systemd
RemainAfterExit
systemd は、ネットワークの状態、IP アドレス、または使用中の古いインターフェイスのエイリアス単位を追跡しません。
2番目のIPアドレスを含めるようにデフォルトのネットワーク構成システムを変更できます。すべてのネットワークアドレス設定を同じ場所に維持したい場合があります:)
システムネットワークサポートする同じインターフェイスでDHCPと静的アドレスを実行します。 NetworkManagerではサポートされていませんが、今すぐ作成できます。キーファイル仮想生成マクエバーランドインターフェイスは物理インターフェイスの子です。 (理論的には、これによって複数のDHCPアドレスを要求することもできます。)複数の構成システムの構成を同じ名前のインターフェースに適用しようとしないでください。 NetworkManagerをすでに実行している場合は、使用するのが最も簡単な方法です。
systemd-network(networkctl)とNetworkManager(nmcliなど)はどちらも、ネットワークインターフェイスを直接変更したかどうかを検出して表示します。
既存の構成システムを構成することも可能です[1][2] macvlan インターフェイスを作成します。しかし、私が理解していることは、後ろからインターフェースを操作すると非常に混乱する可能性があります。
必要に応じて、ほとんどの構成システムで追加のカスタム事前または事後操作を変更できます。サム]、systemd-networkdにはそのようなシステムは組み込まれていません。 NMシステムは、実際には特定のインターフェイス用に書かれたスクリプトを実行するように設計されていないため、「ハッキングされた」と言います。