Скрипт WOL upstart не запускается после перезагрузки 12.04.4

Скрипт WOL upstart не запускается после перезагрузки 12.04.4

Я пытаюсь включить 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 для каждого интерфейса по отдельности, поэтому один сбой не повлияет на другие. Кроме того, эта работа работает, когда ваши интерфейсы включаются после загрузки (горячее подключение).

Связанный контент