Jak można sprawdzić, czy którykolwiek z nich występuje, i co prowadzi do błędu zwracanego przez fork() lub system()? Innymi słowy, jeśli fork() lub system() zwróci błąd, jakie rzeczy w Linuksie mogę sprawdzić, aby zdiagnozować przyczynę tego błędu?Jakie są niektóre warunki, które mogą spowodować, że wywołania fork() lub system() przestaną działać w systemie Linux?
Na przykład:
- Po prostu z pamięci (wyniki w errno ENOMEM) - sprawdzić wykorzystanie pamięci z „wolny” itd
- Za mało pamięci do jądra do skopiowania tablic stron i innych informacji stanowiących procesu macierzystego (wyniki errno EAGAIN)
- Czy istnieje globalny limit procesów? (wyniki w errno EAGAIN również?)
- Czy istnieje limit dla użytkownika? Jak mogę się dowiedzieć, co to jest?
- ...?
celu wyjaśnienia, kiedy się wie, że błąd taki jak EAGAIN wystąpił podczas fork() (errno == EAGAIN), jak można dowiedzieć się, co konkretnie spowodowało to (było to RLIMIT_NPROC? Czy to był błąd kopiowania tabele stron lub skrypty zadań, a jeśli tak, dlaczego?I jak tego uniknąć?) –
Zapytałem również inne, ale powiązane pytanie dotyczące tabel stron w systemie Linux: http://stackoverflow.com/questions/853736/how-to-find-or-calculate-a-linux- processs-page-table-size-and-other-kernel-accou –