Назад | Перейти на главную страницу

Службы запуска в linux запускаются дважды

Когда я перезагружаю свою 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 дважды.