Accrocher tout en démarrant plusieurs daemons

Je lance un server Debian Squeeze AMD64. Target runlevel après le démarrage est runlevel 2, qui comprend rsyslogd, cron, sshd et quelques autres choses, mais pas dovecot, postfix, apache2, etc. Le système ne parvient pas à atteindre le niveau 2 avec plusieurs symptômes:

  • Le système se bloque en essayant de démarrer rsyslogd
  • Démarrer dans runlevel 1 fonctionne, puis vous connecter à partir de la console
  • Démarrage de rsyslogd à partir du niveau d'exécution 1 via /etc/init.d/rsyslog se bloque
  • Démarrage du niveau 2 avec rsyslogd désactivé fonctionne
  • Mais alors, la connection via la console échoue: je reçois la motd, puis rien
  • Démarrer sshd depuis runlevel 1 réussit
  • Mais alors, je ne peux pas me connecter via ssh. Parfois, le mot de passe ssh login me donne la motd et puis rien, parfois pas même cela. Essayer d'offrir une key publique semble gêner le sshd assez pour ne plus me parler.
  • Lors du redémarrage à partir du niveau d'exécution 1, le server empêche d'arrêter apache2 (qui n'est pas en cours d'exécution, donc cela devrait être sortingvial). Essayer d'arrêter apache2 lors de la connection dans runleve 1 se bloque aussi.

Et c'est tout ce qui échoue tout le time. La RAM a été testée, le Dmesg ne présente aucun problème. Je n'ai aucune idée.

Mise à jour : sortie (raccourcie) de rsyslogd -c4 -d appelée dans le niveau d'exécution 1

rsyslogd 4.6.4 démarrage, mode de compatibilité 4, path du module '' appelant object demandé 'net', introuvable (iRet -3003) Demander au module de chargement 'module lmnet' module '/user/lib/rsyslog/lmnet.so' du module de type 2 étant chargé conf.c demandé ref pour 'lmnet', refcount 1 rsylog runtime initialisé, version 4.6.4, users actuels 1 syslogd.c demandé ref pour 'lmnet', refcount now 2

Je peux tuer rsyslogd avec Strg + C, alors. / var / log ne montre aucun des files journaux configurés, cependant.

Update2 : Merci à @DerfK. Je n'ai toujours pas d'idée, mais au less j'ai réduit le problème. Je teste maintenant avec /etc/init.d/apache2 stop (sans apache2 en cours d'exécution, bien sûr) qui se bloque aussi et ressemble à une défaillance encore plus évidente.

Après quelques essais, j'ai découvert qu'un file avec une seule ligne:

/ usr / sbin / apache2ctl configtest> / dev / null 2> & 1

se bloque, alors que la même ligne exécutée dans un shell interactif fonctionne. Je n'ai pas encore pu réduire cette ligne, c'est-à-dire chaque partie, les redirections de stream et le commando lui même est nécessaire pour reproduire la suspension. @DerfK m'a également pointé Strace qui a donné un indice peu profond de ce genre de suspension que nous avons ici:

  • wait4(-1 pour les scripts d'initialisation
  • futex(0xsomepointer, FUTEX_WAIT_PRIVATE, 2, NULL pour les binarys rsyslogd / apache2 appelés par les scripts d'initialisation

Le système a été installé en tant que Debian Lenny par mon hébergeur à l'automne 2011, je l'ai mis à l'écoute immédiatement et l'ai tenu à jour avec Squeeze, qui était alors testé. Cependant, il n'y a pas eu de grands changements. Je suppose que je n'ai jamais essayé de redémarrer le système avant.

Update3 : J'ai trouvé le problème. Mon /etc/nsswitch.conf a spécifié ldap en tant que sauvegarde de search d'hôtes, qui n'est pas disponible à ce moment-là du démarrage. S'appuyer sur dns règle uniquement les problèmes de démarrage.

2 Solutions collect form web for “Accrocher tout en démarrant plusieurs daemons”

Cela me semble que certains services réseau de base ne sont pas lancés. Comparez le contenu de /etc/rc2.d avec /etc/rc3.d ro voir si runlevel 3 démarre quoi que ce soit que runlevel 2 ne fonctionne pas (normalement, mais généralement ce n'est pas quelque chose de fondamental).

Debian Squeeze démarre simultanément par défaut. Cela signifie que plusieurs scripts d'initialisation s'exécutent en même time lors du démarrage. Vous pouvez essayer de désactiver cette fonction afin que seul un script s'exécute à la fois pour savoir exactement à quel étape il échoue. Étant donné que les scripts d'initialisation seront exécutés dans le même ordre chaque fois qu'il échouerait sur le même chaque fois, à less qu'il ne s'agisse d'un problème beaucoup plus grave.

Pour désactiver le démarrage simultané, append CONCURRENCY=none à /etc/default/rcS . Supprimez la ligne pour restaurer la valeur par défaut.

  • IBM Websphere Application Server 7 - Pourquoi les threads ne sont-ils pas détruits?
  • Intel 2620 et 2609 sur debian cpuinfo
  • "Plus de threads peuvent être créés dans le système" dans Network and Sharing Center
  • MariaDB / MySQL utilise beaucoup de threads / memory
  • Le graphe de dépendance au fil du kernel Linux?
  • Obtenir une stg de thread par thread
  • Filets maximaux de Tomcat
  • Le programme de démarrage mène à 10 instances
  • Une numérotation de thread de CPU incorrecte détectée
  • Combien de requests simultanées vous attendez à ce qu'un server Web puisse gérer
  • Configuration JRun threadpool
  • Les astuces du serveur de linux et windows, tels que ubuntu, centos, apache, nginx, debian et des sujets de rĂ©seau.