%20%D1%81%20etherwake%20%D0%BD%D0%B5%20%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%B0%D0%B5%D1%82.png)
Я пытаюсь удаленно разбудить подчиненную машину, когда главная загружается через скрипт bash, используя etherwake
команду для отправки магических пакетов. Обе ОС — Debian 8. Полный код написан ниже:
/etc/init.d/etherwake
#!/bin/sh
#/etc/init.d/etherwake
### BEGIN INIT INFO
# Provides: etherwake
# Required-Start: $all
# Required-Stop: $local_fs $remote_fs $network $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start etherwake at boot time
# Description: Enable service provided by etherwake.
### END INIT INFO
ETHERWAKE=/usr/sbin/etherwake
case "$1" in
start)
echo "Booting slaves through etherwake..."
$ETHERWAKE <MAC Address>
echo "Finished booting all slaves."
;;
stop)
echo "Stop not implemented. Doing nothing"
;;
restart|force-reload)
$0 stop
sleep 10
$0 start
;;
*)
echo "Usage: /etc/init.d/etherwake {start}"
exit 1
;;
esac
exit 0
После написания сценария я сделал:
chmod 755 /etc/init.d/etherwake
update-rc.d etherwake defaults
- Перезагрузите систему через
shutdown -r now
Я также пробовал использовать /etc/rc.local
тремя разными способами:
/etc/rc.local
#!/bin/sh -e
#
# rc.local
/etc/init.d/etherwake
etherwake <MAC Address>
/usr/sbin/etherwake <MAC Address>
exit 0
Никакой удачи. Когда я запускаю либо /etc/rc.local
вручную /etc/init.d/etherwake
как root, все работает нормально. Я думал, что это может быть что-то с правами, но насколько я читал, любой скрипт /etc/init.d
по умолчанию запускается как root. Что я делаю не так?
Заранее спасибо.
Редактировать:
Я понимаю, что Debian 8 использует systemd вместо sysvinit. После настройки всего systemctl -l status etherwake.service
мне выдает:
● etherwake.service - Etherwake magic packet service
Loaded: loaded (/etc/systemd/system/etherwake.service; enabled)
Active: inactive (dead) since Fri 2016-09-30 16:30:56 BRT; 1min 33s ago
Process: 824 ExecStart=/etc/init.d/etherwake start (code=exited, status=0/SUCCESS)
Main PID: 824 (code=exited, status=0/SUCCESS)
Sep 30 16:30:56 hostname etherwake[824]: Booting slaves through etherwake...
Sep 30 16:30:56 hostname etherwake[824]: Finished booting all slaves.
И /etc/systemd/system/etherwake.service
является:
[Unit]
Description=Etherwake magic packet service
Wants=network-online.target
After=syslog.service network.target network-online.target
[Service]
ExecStart=/etc/init.d/etherwake start
[Install]
WantedBy=default.target
Еще я заметил, что бег systemctl restart etherwake
действует как талисман.
решение1
Проблема в том, что update-rc.d etherwake defaults
, возможно, не работает. Попробуйте включить службу через systemctl
, запустите:
systemctl enable etherwake