Непонятное поведение fork-bomb

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by tim-oleksii, 24 Jun 2011.

  1. tim-oleksii

    tim-oleksii Member

    Joined:
    14 Mar 2011
    Messages:
    199
    Likes Received:
    10
    Reputations:
    0
    Сделал fork-bomb. Запускаю на пингвине от root - виснет на 2 минуты, затем падает X. X Перегружается. fork умер.

    Вопрос - почему перегружается X и умирает fork? Вроде он должен забить всю таблицу процессов и не падать.

    UPD: если запускать просто из консоли, но не в Х, тогда все работает как надо.
     
    #1 tim-oleksii, 24 Jun 2011
    Last edited: 24 Jun 2011
  2. ov6

    ov6 New Member

    Joined:
    2 Mar 2011
    Messages:
    2
    Likes Received:
    0
    Reputations:
    0
    Ты наверняка запускаешь через графический терминал, на пользовательские приложения может быть установлено ограничение на использование памяти и автоматический kill, в голой консоли соотвественно такого нет поэтому у тебя всё работает
     
  3. slesh

    slesh Elder - Старейшина

    Joined:
    5 Mar 2007
    Messages:
    2,702
    Likes Received:
    1,224
    Reputations:
    455
    Да всё на самом деле проще. Твоега прога стартует от какого либо процесса, прородительский или родительский процесс из-за исчерпания ресурсов рушится, тем самым убивая всех потомков. А потомки тоже являются чьими-то родителями по этому и их потомки мрут и так далее.
    чтобы такого небыло, надо создать свою группу процессов и отделиться от управляющего терминала. Это всё решается командой setsid
    после её удачного использования процесс перестаёт быть зависим от кого либо потому что сам становится создателем группы процессов.
     
  4. tim-oleksii

    tim-oleksii Member

    Joined:
    14 Mar 2011
    Messages:
    199
    Likes Received:
    10
    Reputations:
    0
    Да запускаю через графический терминал. Спасибо за идею, надо посмотреть кто будет родителем.

    Я о этом думал. Если запускать в tty1, тогда тако проблемы нет.

    Всем спасибо. Просто посмотрю кто будет родителем при пуске из Х.
     
  5. slesh

    slesh Elder - Старейшина

    Joined:
    5 Mar 2007
    Messages:
    2,702
    Likes Received:
    1,224
    Reputations:
    455
    ну правильно когда из tty запускаешь то ему как-то по-фигу на исчерпание ресурсов (командному интерпретатору).
     
  6. tim-oleksii

    tim-oleksii Member

    Joined:
    14 Mar 2011
    Messages:
    199
    Likes Received:
    10
    Reputations:
    0
    Таки да. Похоже падает yakuake, откуда я пускаю, а каскадно и весь Х.