Когда я перезагружаю свою 32-битную машину с Ubuntu 10.04, все службы запуска запускаются дважды.
Процесс запуска выглядит так:
Starting apache2
Starting apache2
(98)Address already in use: make_sock: could not bind to address 0.0.0.0:80
no listening sockets available, shutting down
Unable to open logs
Done
Done
* Starting MySQL database server mysqld * Starting MySQL database[ OK ] * Starting nsd3... * Starting nsd3...
[ OK ]
* Starting Postfix Mail Transport Agent postfix * Starting Postfi[ OK ] Transport Agent postfix
[ OK ]
* Starting NTP server ntpd * Starting NTP server ntpd [ OK ]
Starting daemon monitor: monit.
Я проверил, что у меня нет повторяющихся ссылок запуска, если я update-rc.d -f mysql remove
затем перезагрузка mysql вообще не запускается, повторное добавление все равно запускает дважды.
Единственное, что в моих журналах - это предупреждения о том, что все запускается дважды.
Кто-нибудь видел такое раньше или знает, куда ткнуть, чтобы узнать, что его вызывает?
Я предполагаю, что ваша система, возможно, проходит через два уровня запуска и запускает сценарии запуска на каждом.
Сначала я посмотрю на /etc/rc2.d
, /etc/rc3.d
, /etc/rc4.d
- и удалите все, кроме одной из начальных символических ссылок, и посмотрите, работает ли это.
Используйте команду «runlevel», чтобы узнать, на каком уровне выполнения вы сейчас находитесь.
У меня была эта проблема в gentoo, как оказалось, я использовал sh
shell в Linux для запуска приложения flask в фоновом режиме в режиме отладки, это программное обеспечение вызывало запуск двух экземпляров flask. Решением было отключить режим отладки, который устранил мою проблему. Не торопитесь обвинять в проблеме внутренности Linux, часто проблема в нашем коде. Упростите свой код, чтобы выполнять менее сложную работу, и вы можете изолировать проблему.
Если вы все еще думаете, что в этом виновата ОС Linux, проверьте, не дублированы ли сценарии запуска в вашем компьютере. /etc/runlevels/boot
, /etc/runlevels/default
и /etc/init.d
каталоги. Вы можете проверить файлы с такими же именами. Если они есть, уберите из /etc/runlevels/default
которые также находятся в /etc/runlevels/boot
.
Обнаружил проблему, у меня была дублированная копия /etc/init/rc.conf, поэтому выскочка запускала /etc/init.d/rc дважды.