sh: fork: Resource temporarily unavailable

Diskutiere mit über: sh: fork: Resource temporarily unavailable im Mac OS X - Unix & Terminal Forum

  1. Wolfgang K.

    Wolfgang K. Thread Starter MacUser Mitglied

    Beiträge:
    13
    Zustimmungen:
    0
    Registriert seit:
    17.02.2005
    Hi,
    vielleicht kann mir da jemand helfen: Wenn ich ein paar Terminalfenster öffne kommt irgendwann der Fehler "sh: fork: Resource temporarily unavailable". Wenn ich welche schließe funktionierts dann wieder. Gibt es eine Möglichkeit das zu umgehen?

    tia,
    Wolfgang
     
  2. dpr

    dpr MacUser Mitglied

    Beiträge:
    519
    Zustimmungen:
    0
    Registriert seit:
    04.04.2006
    Könnten die limits sein. Was sagt

    Code:
    ulimit -a
    
    insbesondere "max user processes", "open files"?
     
  3. Wolfgang K.

    Wolfgang K. Thread Starter MacUser Mitglied

    Beiträge:
    13
    Zustimmungen:
    0
    Registriert seit:
    17.02.2005
    ulimit -a

    Hallo dpr,
    danke für den Hinweis, das könnte es sein. Habe bei "open files" 256 und bei "max user processes" 100 stehen.

    Das Problem: Wie kann ich die Limits ändern? "sudo ulimit -u 9000" wird z.B. zwar ohne Fehler- und Rückmeldung ausgeführt, aber weder sofort noch nach einem Neustart übernommen.

    Grüße,
    Wolfgang
     
  4. dpr

    dpr MacUser Mitglied

    Beiträge:
    519
    Zustimmungen:
    0
    Registriert seit:
    04.04.2006
    Die Limits vererben sich vom Vaterprozeß auf die Kinderprozesse. Ein sudo ... bringt der aufrufenden Shell damit nichts, da sudo einen Prozeß forkt (Kind der Shell) und diesen nach Verrichtung der Arbeit beendet. Auf den Vater hat dies keinen Einfluß.

    Grundsätzlich muß man zwischen hard und soft limits unterscheiden. Hard limits geben, wie der Name sagt, die Obergrenze vor und werden i.d.R. in einem der Startscripte des Systems gesetzt (bei mir habe ich diese in /etc/rc, z.B. ulimit -Hu 2068; H=hard, S=soft). Soft limits können dann pro Nutzer in den Grenzen der hard limits gesetzt werden. Das passiert üblicherweise mit dem shell-build-in limit (für tcsh) oder /usr/bin/ulimit (für bash). Also könnte man für tcsh setzen (vorausgesetzt die hard limits lassen dies zu)

    Code:
    limit maxproc 200
    limit descriptors 512
    
    Sinngemäß für bash

    Code:
    ulimit -Su 200
    ulimit -Sn 512
    
    Das gilt, wie gesagt, für diesen Prozess und seine Kinder. Eine zweite Shell wird davon erst dann beeinflußt, wenn sie aus der ersten Shell heraus gestartet wird oder Du die limits in ~/.cshrc oder ~/.profile setzt.
     
Die Seite wird geladen...
Ähnliche Themen - fork Resource temporarily Forum Datum
Hebamme gesucht, um Resource zu entbinden Mac OS X - Unix & Terminal 01.04.2007

Diese Seite empfehlen

Benutzerdefinierte Suche