Jesseの場合、コマンドは
sudo systemctl reload networking
苦情なく実行されます。バスターでは失敗しました。
ネットワークサービスを再ロードできません。ジョブタイプの再読み込みは組織ネットワークサービスには適用されません。
何をすべきですか?
(なぜこれが起こるのですか?)systemdドキュメントに簡単な答えが見つかりません。https://github.com/systemd/systemd/blob/master/NEWS#L474リロードが可能だと言われていますが、もう機能しないようです)
答え1
これがDebian 10で実行するのに意味のあるコマンドであると考える理由はなく、Debian 8では特に便利ではありません。
このサービスはsystemdの人々によって提供されないので、これはsystemd docoとは何の関係もありません。包装として提供されますifupdown
。
Debian 8 には明示的な単位はありませんnetworking.service
。この名前のサービスは、自動的に生成される単位ラッパーです。ヴァン・スケレンブルクの/etc/init.d/networking
スクリプト。 van Smoorenburgrc
スクリプトには、ジェネレータが許可する「再ロード」セマンティクスがありますが、単純な再起動とほとんど変わりません。
Debian 10クリアnetworking.service
ユニットただし、サービスプロセスが終了した後も引き続き実行されるようにマークされた単一のサービスです。意味のある「再読み込み」の意味はありません。ExecReload
サービス定義には何もなく、これを知らせるプロセスもありません。networking.service
意味のある起動、停止、および再起動のみ可能です。 「再読み込み」されません。
答え2
欲しい
sudo systemctl restart networking
~からシステム(1):
リフレッシュモード...
コマンドラインにリストされているすべてのデバイスに設定を再ロードするように要求します。これは、systemdのユニット構成ファイルではなくサービス固有の構成を再ロードすることに注意してください。 ...つまり、Apacheの例では、apache.serviceシステム単位のファイルではなく、WebサーバーからApacheのhttpd.confを再ロードします。 ...
このオプションをサポートするサービスユニットの場合は、reload
これを実装する必要がありますExecReload=
。
systemctl cat apache2.service
これが実際にサポートされていることがわかります。
[Service]
Type=forking
ExecStart=/usr/sbin/apachectl start
ExecStop=/usr/sbin/apachectl stop
ExecReload=/usr/sbin/apachectl graceful
...
また、systemctl cat networking.service
以下ではありません。
[Service]
Type=oneshot
ExecStart=/sbin/ifup -a --read-environment
ExecStop=/sbin/ifdown -a --read-environment --exclude=lo
RemainAfterExit=true
...
私が持っているDebian 7(gasp)マシンを見ると、まだシステムがインストールされていないことがわかります。明らかに、サポートは次の/etc/init.d/networking
タスクのみを実行reload
します。ifdown
ifup
# /etc/init.d/networking (on Debian 7 wheezy)
...
reload)
process_options
log_action_begin_msg "Reloading network interfaces configuration"
state=$(cat /run/network/ifstate)
ifdown -a --exclude=lo $verbose || true
if ifup --exclude=lo $state $verbose ; then
log_action_end_msg $?
else
log_action_end_msg $?
fi
;;
...
Debian 8(jessie)マシンはありませんが、すべてが導入されましたが、systemd
まだ移行されていません。これを行うと、将来のリリースではこれらのinitスクリプトに依存しなくなりますsystemctl cat networking
。ExecReload=/etc/init.d/networking reload