CentOS7だと Wake-on-LAN のソフトウェア設定が Systemd でできて便利

これまで、CentOS6系では Wake-on-LAN のソフトウェア設定をCRONやinit.d で ethtool コマンドを実行していました。なんかスマートじゃない感じがしてました。

 

それがCentOS7系になって、Wake-on-LAN のソフトウェア設定を Systemd で実行できるようになりました。以前より、スマートな感じがします。

なので、Systemdで Wake-on-LAN のソフトウェア設定をしてみました。

 

 

まず、ethtoolがインストールされているか確認します。

インストールされていなかった場合、次のコマンドでインストールします。

# yum install ethtool

 

次のコマンドでNICのソフトウェア設定を確認します。

「Wake-on: d」となっている場合は、Wake-on-LANが無効になっています。

# ethtool eth0 | grep "Wake-on"
	Supports Wake-on: pumbg
	Wake-on: d

 

Wake-on-LAN を有効するため、Systemdにサービスファイルを設置します。

# vim /etc/systemd/system/wol@.service
[Unit]
Description=Wake-on-LAN for eth0
Requires=network.target
After=network.target

[Service]
ExecStart=/usr/sbin/ethtool -s eth0 wol g
Type=oneshot

[Install]
WantedBy=multi-user.target

 

設置したサービスファイル読み込ませるため、次のコマンドを実行します。

# systemctl daemon-reload

 

サービスを読み込ませたら、サービスを起動し自動起動を有効にします。

# systemctl start wol@interface.service
# systemctl enable wol@interface.service
Created symlink from /etc/systemd/system/multi-user.target.wants/wol@interface.service to /etc/systemd/system/wol@.service.

 

次のコマンドで正しくソフトウェア設定ができているか確認します。

# ethtool eth0 | grep "Wake-on"
	Supports Wake-on: pumbg
	Wake-on: g

「Wake-on: g」となったことが確認できました。

 

あとは、別のサーバからマジックパケットを送信するだけです。