E come si può scoprire se qualcuno di questi si sta verificando e che porta a un errore restituito da fork() o system()? In altre parole, se fork() o system() restituisce un errore, quali sono alcune cose in Linux che posso verificare per diagnosticare perché sta accadendo quel particolare errore?Quali sono alcune condizioni che possono causare il fallimento di chiamate fork() o system() su Linux?
Ad esempio:
- semplicemente fuori di memoria (risultati in errno ENOMEM) - Controllare l'utilizzo della memoria con 'libero', ecc
- Memoria insufficiente per il kernel per copiare tabelle delle pagine e altre informazioni contabili del processo genitore (risultati in errno EAGAIN)
- Esiste un limite di processo globale? (risultati anche in errno EAGAIN?)
- Esiste un limite di processo per utente? Come posso sapere di cosa si tratta?
- ...?
per chiarire, quando si sa che si è verificato un errore come EAGAIN durante fork() (errno == EAGAIN), come si fa a scoprire che cosa specificamente causato (era RLIMIT_NPROC? È stato un errore di copiatura tabelle delle pagine o struttura delle attività e, in caso affermativo, perché?E come lo evitate?) –
Ho anche chiesto una diversa, ma correlata domanda sulle tabelle delle pagine in Linux: http://stackoverflow.com/questions/853736/how-to-find-or-calculate-a-linux- processs-page-table-size-and-other-kernel-accou –