
私は WOL を有効にしようとしており、次の回答に従いました:Wake-on-LAN を永続的に有効にするにはどうすればよいですか?
リンクに従って、再起動時に WOL を有効にする起動ジョブを作成しました。スクリプトは次のとおりです。
start on started network
script
for interface in $(cut -d: -f1 /proc/net/dev | tail -n +3); do
logger -t 'wakeonlan init script' enabling wake on lan for $interface
ethtool -s $interface wol g
done
end script
スクリプトに wakeonlan.conf という名前を付け、/etc/init/ に配置します。次の方法でジョブを開始できます。
sudo service wakeonlan start
正常に起動し、eth0 で WOL が有効になります。
ただし、再起動すると、upstart ジョブの開始に失敗します。wakeonlan.log には次のように表示されます。
Cannot get current wake-on-lan settings: Operation not supported
not setting wol
次に何をすればいいのか分かりません。
答え1
まず、Ubuntu 12.04 には「network」という名前のジョブはありません。started networking
代わりに を使用する必要があります。
次に、これをインスタンス ジョブにすると役立つかもしれません。これを試してください。
start on net-device-up
instance $IFACE
task
pre-start exec logger -t 'wakeonlan init script' enabling wake on lan for $IFACE
exec ethtool -s $IFACE wol g
おそらく、/proc/net/dev の 1 つのインターフェースが wol をサポートしていないため、ジョブが残りのインターフェースで続行されないのだと思います。上記のジョブは、各インターフェースの wol を個別にオンにするため、1 つの失敗が他のインターフェースに影響することはありません。さらに、このジョブは、インターフェースがブート後に起動した場合 (ホットプラグ) に機能します。