Автор Тема: Проблем при стартиране на sshd  (Прочетена 1684 пъти)

toxigen

  • Напреднали
  • *****
  • Публикации: 243
    • Профил
Версията на sshd е 3.2.3, инсталирана в /usr/local
Изпълнимите файлове са в /usr/local/sbin/
При стартиране на /usr/local/sbin/sshd2 дава следната грешка:
Цитат

sshd FATAL: daemon(): Resource Temporarily unavailable

и съответно спира. При стартиране с опция -dd тръгва в debug режим, но не пуска дъщерни процеси за обработка на заявките.
Касае се за web сървър, който изведнъж (от днес) започна да я прави тая мизерия - sshd беше умрял и когато пробвах да го пусна излезе това.
Броя на стартираните процеси е около 38 - 40 при ulimit - unlimited и max-user-processes 1024.
Процесора е Celeron 300 , 128MB RAM, ~3GB празно на диска
Ако някой има някаква идея от какво може да е МОЛЯ да каже.
Активен

ivak

  • Напреднали
  • *****
  • Публикации: 156
    • Профил
Проблем при стартиране на sshd
« Отговор #1 -: Jun 21, 2005, 12:38 »
daemon() е библиотечна функция за прехвърляне на процес в background. сама по себе си не е нещо особено - просто вика fork() и после убива родителския процес. всъщност грешката, която виждаш, се връща от fork(). бързата справка в sys_errlist показва, че получаваш EAGAIN:
Примерен код
EAGAIN fork cannot allocate sufficient memory to copy the parent's page tables and allocate a task structure for the child.

тази грешка означава, че кернелът е останал без памет. възможно е някои процеси да са се нагълтали с прекалено много вируална памет и да са изчерпали адресното пространство или пък да имаш адски много едновременно установени TCP сесии или друга подобна дивотия.

би ли пуснал малко повече инфо:

- какъв ти е кернелът;
- какво казва 'ps aux';
- какво става, когато рестартираш машината;
- какво *ново* казва dmesg (след съобщенията от стартирането);
- какво пише в /proc/meminfo и /proc/stat.
Активен

Cлoжнитe пpoблeми имaт пpocти и лecни зa paзбиpaнe гpeшни oтгoвopи.

toxigen

  • Напреднали
  • *****
  • Публикации: 243
    • Профил
Проблем при стартиране на sshd
« Отговор #2 -: Jun 21, 2005, 21:27 »
Касае се за кернел 2.4.20 - правен от някой в работата преди повече от година (поне, тъй като машината е с 420 дни ъптайм). Въобще не е желателно рестартиране, защото съм сигурен, че почти нищо няма да стартира както трябва (говоря за сървисите), а докато ги подкарам ще са ми турнали глоба колкото заплатата - т.е по добре да мина без sshd. Утре ще постна изхода от ps -aux, че сега съм си у нас и нямам по очевидни причини ssh. Обърнах внимание, че въпросния някой, инсталирал сървъра не е сложил swap, а остават около 4М свободна памет, така че май там се крие ключа от бараката. Ще пробвам някои работи и ще пиша какво е станало.
Активен

ivak

  • Напреднали
  • *****
  • Публикации: 156
    • Профил
Проблем при стартиране на sshd
« Отговор #3 -: Jun 22, 2005, 00:27 »
Цитат (toxigen @ Юни 21 2005,22:27)
остават около 4М свободна памет, така че май там се крие ключа от бараката

не е задължително. кернелът не оставя празно и пълни паметта до дупка с дисков кеш, който се освобождава, когато трябва ram за нещо друго.

на теория липсата на памет би трябвало да предизвика грешка ENOMEM, но на практика кернелът убива заявяващия процес или най-дебелата програма в паметта. точната стратегия нещо ми се губи, защото я променяха няколко пъти напоследък.

както и да е, твоят случай не е такъв. под "кернелът няма достатъчно памет" се разбира липса на място в системните таблици, които са алокирани статично.

пп. swap може да се добави и на файл, без да се рестартира машината.
Активен

Cлoжнитe пpoблeми имaт пpocти и лecни зa paзбиpaнe гpeшни oтгoвopи.

toxigen

  • Напреднали
  • *****
  • Публикации: 243
    • Профил
Проблем при стартиране на sshd
« Отговор #4 -: Jul 07, 2005, 21:50 »
Оказа се съвсем различно '<img'>
За втори път ми се случва и все със сървъри, които не съм инсталирал аз (което може само да ме радва '<img'>) - някой добросъвестен колега от бившите си беше инсталираб rootkit. Смешното е, че след всяко свое мизерстване вместо просто да изчисти логовете прави нещо от сорта на rm -rf /*log*, което съответно води до пълна неработоспособност на системата - всяко нещо, съдържащо log заминава в небитието.... включително и /sbin/login '<img'> Та така, добре че си бях оставил някоя и друга конзола - изтеглих важните работи и 'сървъра' мина под ножа.
Благодаря за помощта!!
Активен