Главная страница


ru.linux

 
 - RU.LINUX ---------------------------------------------------------------------
 From : Eugene B. Berdnikov                  2:5020/400     16 Mar 2001  23:03:41
 To : Alex Korchmar
 Subject : Re: Microsoft предлагает запретить Linux!!!
 -------------------------------------------------------------------------------- 
 
 Alex Korchmar <Alex.Korchmar@p65.f423.n5020.z2.fidonet.org> wrote:
 
 AK> Hi Eugene B.!
 AK> At Wed, 14 Mar 01 13:03:28 +0300 Eugene B. Berdnikov <berd@desert.ihep.su>
 AK> wrote:
 AK> 
 VN>>> Да никто тому sshd, который Ваш шелл будет обслуживать, этот SIGTERM не
  EBB>>  Практика показывает, что получив SIGTERM, sshd убивает своих потомков.
 AK> ЧО???????????? 
 AK> ребята, да что они там в ihep'е - в натуре, коноплю выращивают, что ли?
 AK> 
 AK> Сидит человек, и уже неделю несет какой-то полнейший бред. Причем до того я 
 AK> его считал вполне разумным.
 
  Hу эта, деградируем потихоньку... :) Я вот уже от человека "вполне разумного"
  доэволюционировал до того, что стал скрипты стартовые читать - вместо sh. :)
  И массу интересного для себя нашел. Hапример, такой фрагмент:
 
 /etc/rc.d/init.d/functions:
  [...]
 # A function to start a program.
 daemon() {
  [...]
         # See if it's already running.
         pidlist=`pidofproc $base`
  
         pid=
         for apid in $pidlist ; do
            [ -d /proc/$apid ] && pid="$pid $apid"
         done
         
         [ -n "$pid" ] && ps h $pid >/dev/null 2>&1 && return
 
  Hу как? Tо, что ps h всегда возвращает 0, неважно (в RH7.0 уже поправили).
  Забавно другое: если я вошел на эту машину по ssh, то по команде
  "/etc/rc.d/init.d/ssh restart" демон убьется, но _не_ перезапустится.
  Тоска и печаль - в тексте pidofproc():
 
 pidofproc() {
  [...]
         # First try "/var/run/*.pid" files
         if [ -f /var/run/$1.pid ] ; then
                 pid=`head -1 /var/run/$1.pid`
                 if [ "$pid" != "" ] ; then
                         echo $pid
                         return 0
                 fi
         fi
 
         # Next try "pidof"
         pid=`pidof $1`
         if [ "$pid" != "" ] ; then
                 echo $pid
                 return 0
         fi
 
         # Finally try to extract it from ps
         ps ax | awk 'BEGIN { prog=ARGV[1]; ARGC=1 } 
  [...]
 
  Если я наберу эту команду "restart" 2й раз, меня просто вышибет с машины,
  но ничего запускаться не будет. Почему - читайте killproc() и плачьте... :)
 
  Разумеется, я предполагаю, что в скриптах написаны стандартные редхатовские
  конструкции "daemon sshd", "killproc sshd", "stop $0 ; start $0".
 
  Для меня тут был еще один сюрприз. Я на своих машинах разные предохранители
  вешал типа запасного sshd -i на нестандартном порту. Мол, standalone демон
  свалится - зайду через запасной ход и запущу заново. Хех, зайти-то можно,
  а вот запустить стандартным скриптом - фигушки: кривой daemon() не позволит.
 
  Допускаю, что Вы все это уже 10 лет знаете. А я вот не знал. И для проверки
  на SIGTERM зашел на первую попавшуюся машину и, не разбираясь в pid'ах,
  набрал ".../sshd stop". Все коннекции послетали. :) Правда, я уже покаялся:
  то был Солярис, и скрипты оказались не моими (логика другая), а я - дурак.
  Hу ладно, переживу как-нибудь. Гораздо хуже то, что в дистрибутиве
  РедХата идут скрипты, мягко говоря, не тем пальцем деланные... :(
 -- 
  Eugene Berdnikov
 --- ifmail v.2.15dev5
  * Origin: Institute for High Energy Physics, Protvino, Russia (2:5020/400)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 Re: Microsoft предлагает запретить Linux!!!   Eugene B. Berdnikov   16 Mar 2001 23:03:41 
Архивное /ru.linux/5353ee8006f6.html, оценка 1 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional