К сожалению, истинная фиксация будет, скорее всего, использовать последнюю версию wget
поскольку проблемы были, вероятно, устранены там. 1.11 приблизительно 5 лет. Существует 1.11.4 также, если Вы, оказывается, используете оригинал 1.11.
Кроме того (и это ужасно.. и не мог бы работать в зависимости от того, что инициировало использование дескриптора файла):
wget
приятно. lsof
или простое ls /proc/$pid/fd
wget
когда это рядом с Вашим ulimit
из файлов. Иначе необходимо было бы проследить то, что пропускает fd's в wget
и исправьте его. Могут быть известные патчи утечки дескриптора файла, которые Вы могли бэкпортировать к 1,11. Я, может казаться, не нахожу общедоступное управление версиями для wget
источник все же.
Два шага для решения этой проблемы. Ваш сценарий ( /etc/init.d/noip2
) должен выглядеть так:
#! /bin/sh
# /etc/init.d/noip2
# Supplied by no-ip.com
# Modified for Debian GNU/Linux by Eivind L. Rygge <eivind@rygge.org>
# Updated by David Courtney to not use pidfile 130130 for Debian 6.
# Updated again by David Courtney to "LSBize" the script for Debian 7.
### BEGIN INIT INFO
# Provides: noip2
# Required-Start: networking
# Required-Stop:
# Should-Start:
# Should-Stop:
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start noip2 at boot time
# Description: Start noip2 at boot time
### END INIT INFO
# . /etc/rc.d/init.d/functions # uncomment/modify for your killproc
DAEMON=/usr/local/bin/noip2
NAME=noip2
test -x $DAEMON || exit 0
case "$1" in
start)
echo -n "Starting dynamic address update: "
start-stop-daemon --start --exec $DAEMON
echo "noip2."
;;
stop)
echo -n "Shutting down dynamic address update:"
start-stop-daemon --stop --oknodo --retry 30 --exec $DAEMON
echo "noip2."
;;
restart)
echo -n "Restarting dynamic address update: "
start-stop-daemon --stop --oknodo --retry 30 --exec $DAEMON
start-stop-daemon --start --exec $DAEMON
echo "noip2."
;;
*)
echo "Usage: $0 {start|stop|restart}"
exit 1
esac
exit 0
Затем сделайте его исполняемым, т.е. запустите
# chmod a+x /etc/init.d/noip2
# update-rc.d noip2 defaults
Вот более простой способ подойти к этому...
Мы пытаемся имитировать вашу учетную запись обычного пользователя, выдающую эту команду (, предполагая, что вы следовали рекомендациям No -IP по установке )...
sudo noip2
Причина, по которой ваша учетная запись обычного пользователя (вместо вашего суперпользователя )должна выполнять эту команду, заключается в том, что ваша учетная запись обычного пользователя имеет некоторый -IP -специфический материал, к которому необходимо получить доступ при выдаче эта команда. Таким образом, чтобы имитировать ввод указанной выше команды в качестве обычной учетной записи пользователя с повышенными привилегиями при запуске, выполните следующие действия...
Отредактируйте crontab вашего суперпользователя, введя эту команду...
sudo crontab -e (choose your favorite text editor if prompted)
Добавьте эту строку внизу файла...
@reboot su -l <regular account username> && sudo noip2
Сохраните файл и перезагрузите систему. Вы обнаружите, что noip2 был запущен правильно.