Ubuntu 10.04 32ビットマシンを再起動すると、すべてのスタートアップサービスが2回開始されます。
起動プロセスは次のようになります。
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がまったく起動せず、再度追加すると2回起動します。
私のログにあるのは、すべてが2回始まるという警告だけです。
誰かがこれを以前に見たことがありますか、それを引き起こしているものを見つけるためにどこを突くかについての手がかりを持っていますか?
問題が見つかりました。/etc/init/rc.confのコピーが重複していたため、upstartで/etc/init.d/rcが2回実行されていました。
システムが2つのランレベルを通過し、それぞれで開始スクリプトを実行している可能性があると思います。
まず、/etc/rc2.d
、/etc/rc3.d
、/etc/rc4.d
を調べて、開始シンボリックリンクの1つを除くすべてを削除し、それが機能するかどうかを確認します。
「runlevel」コマンドを使用して、現在のランレベルを確認します。
私はgentooでこの問題を抱えていました。私にとっては、Linuxでsh
シェルを使用して、デバッグモードでバックグラウンドでflaskアプリを実行していましたが、そのソフトウェアはflaskの2つのインスタンスを実行させていました。解決策は私の問題を修正したデバッグモードをオフにすることでした。問題のLinux内部を非難するのが遅いです、しばしば問題はコードを単純化して、複雑さの少ない作業を実行し、問題を切り分けることができます。
それでもLinuxOSの根性が原因だと思われる場合は、/etc/runlevels/boot
、/etc/runlevels/default
、および/etc/init.d
ディレクトリに起動スクリプトが重複していないことを確認してください。同じ名前のファイルを確認できます。それらが存在する場合は、/etc/runlevels/default
にあるものを/etc/runlevels/boot
から移動します。