jessie - systemd and wakeonlan
wheezy では /etc/network/interfaces に ethernet-wol g とか書いておけばよかったのだが、jessie ではどうもこれがうまく効いてない。sysvinit から systemd-networkd へ変更したのもあって、wakeonlan の設定も systemd から呼び出すことにした。
(他に udev の方で設定することも出来るらしいが udev 設定するのは見通しわるくなるしあまり気乗りしない)
具体的には /etc/systemd/system/wol@.service というファイルを用意する
@on-jessie:~$ sudo vi /etc/systemd/system/wol@.service
/etc/systemd/system/wol@.service
[Unit]
Description=Wake-on-LAN for %i
Requires=network.target
After=network.target
[Service]
ExecStart=/sbin/ethtool -s %i wol g
Type=oneshot
[Install]
WantedBy=multi-user.target
wheezy から jessie へ dist-upgrade した環境の場合、テストするには
@on-jessie:~$ sudo systemctl restart networking.service
して
@on-jessie:~$ sudo ethtool eth0してみる。
/sbin/ethtool コマンドがないならインストールする。
@on-jessie:~$ sudo apt-get install ethtool使ってるネットワークインターフェイスがどのタイプのWakeOnLanをサポートしているのかは、ethtool コマンドで調べられる。
wakeonlan のタイプには p(phy),u(unicast),m(multicast),b(broadcast),a(arp),g(MagickPacket™),s(SecureOn&tm; MagickPacket™),d がある。
@on-jessie:~$ man ethtool
@on-jessie:~$ sudo ethtool eth0
[...]
Supports Wake-on: umbg
Wake-on: g
wakaonlan パッケージや etherwake を使うと g とか s で LAN 内の特定のマシンを起動できるので便利。
また /etc/ethers に MAC とマシン名の対応、コメントを書いておくとMACではなくマシン名で呼び出せるので便利。
追記 2015-08-24
jessie を dist-upgrade ではなく、クリーンインストールした環境では上記では不十分で、以下が必要。
テストするには、(eth0 は該当インターフェイス名、wol@.service ファイルの %i に置き換えられる)
sudo systemctl start wol@eth0.service
うまく行ったなら、
sudo systemctl enable wol@eth0.service
cf. ethers(5), https://wiki.archlinux.org/index.php/Wake-on-LAN
0 件のコメント:
コメントを投稿