
Я пытаюсь включить WOL и следую этому ответу:Как можно включить функцию пробуждения по локальной сети на постоянной основе?
По ссылке я создал задачу upstart для включения 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
Все запускается успешно, и WOL включается на eth0.
Однако при перезагрузке задание 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 не поддерживает wol, и поэтому ваша работа не продолжается с остальными интерфейсами. Работа выше включит wol для каждого интерфейса по отдельности, поэтому один сбой не повлияет на другие. Кроме того, эта работа работает, когда ваши интерфейсы включаются после загрузки (горячее подключение).