/etc/init.d/networking restart
とinvoke-rc.d networking restart
(Debian)の間に本当の違いはありますか?
何 invoke-rc.d
はそのマニュアルページに記載されています。これは、initスクリプトを直接実行するためのラッパーですが、現在のランレベルと、そのランレベルでデーモンを実行する必要があるかどうかに基づいて、コマンドが実行されない可能性があるポリシーも適用します。
デフォルトでは、Debianはランレベル2〜5を区別しませんが、ローカル管理者として、各ランレベルで実行される内容を変更できます。 invoke-rc.d
はこれらのローカルポリシーを尊重し、ランレベルが間違っている場合はデーモンを起動しません。
実際の違いはありません[1]。 invoke-rc.d
コマンドは、init.dスクリプトを実行するための便利なインターフェイスを提供するだけで、実行するスクリプトへのフルパスを入力するという面倒な作業を省くことができます。どちらの呼び出しでも同じ最終結果が得られます。
[1] invoke-rc.d
コマンドは、要求されたサービススクリプトを呼び出す前にチェックを実行して、実行する必要があることを確認します。これは、間違ったランレベルでスクリプトが呼び出されるのを防ぐなど、その意味で違いがあります。足を撃たないように保護します。マニュアルページは、この点で有益であることが証明されるべきです。
ネットワークの再起動を実行するもう1つの簡単な方法は、次のbashファイルを作成することです。私の場合は[net]、つまり/etc/init.d/netと呼ばれます。
スクリプト:
#!/bin/sh -e
invoke-rc.d networking stop ; invoke-rc.d networking start ; ifup eth0
#Add whatever interfaces you have installed. ie: ifup eth0 wlan0 etc
作成後chmod711 'ファイル名' [net]