È possibile impedire a macOS di sospendere un'applicazione quando il sistema esaurisce la memoria dell'applicazione?

1

A volte eseguo progetti di calcolo distribuito in BOINC Manager mentre il mio iMac è inattivo. Spesso viene visualizzata una finestra di dialogo Uscita forzata con il messaggio "Il sistema ha esaurito la memoria dell'applicazione". Quando ciò accade, tutte le applicazioni aperte tranne il Finder vengono messe in pausa e devono essere riavviate manualmente, una alla volta, dalla finestra di dialogo.

I potrebbe ridurre la quantità di RAM che BOINC Manager può utilizzare, ma preferirei allocare quanta più RAM possibile ai progetti BOINC. Come posso impedire a macOS di sospendere BOINC (o qualsiasi altra app o app) quando il sistema esaurisce la RAM?

Aggiornamento : questo problema sembra essere stato corretto da un recente aggiornamento BOINC.

    
posta Richard Brockbank 06.05.2017 - 12:00
fonte

1 risposta

1

Probabilmente non vuoi evitare che macOS sospenda le app quando il sistema esaurisce la RAM quando sai che l'unica alternativa è uccidere il programma. Cioè interrompere l'esecuzione del programma ora e qui senza salvare i suoi dati o qualcosa del genere.

Tuttavia, non è necessario riavviare i programmi messi in pausa come in "chiudere il programma e avviarlo". Invece, è possibile riattivare il programma quando si dispone di sufficiente memoria libera sul sistema. Puoi farlo dal terminale eseguendo:

kill -CONT <pid>

dove dovrebbe essere sostituito con l'ID del processo del processo, si desidera annullare la pausa.

Puoi trovare l'ID di processo usando Activity Monitor o il comando "ps" nel Terminale (in questo caso, cerca i processi con lo stato T poiché sono quelli in pausa / fermati).

Un modo semplice per non pubblicare e trovare l'ID in una volta sola è:

kill -CONT 'pgrep myprogram'

dove myprogram è il nome del programma che si desidera annullare la pausa.

La seconda parte della domanda in cui descrivi lo scenario ideale è molto difficile da realizzare con un programma standard. In generale i programmi possono richiedere la memoria dal sistema operativo, ma il sistema operativo non può richiederlo in seguito. È possibile, ma richiede programmi molto specializzati che in genere non è il caso.

Questo significa che una volta che macOS ha concesso il tuo programma per esempio 1 GB di RAM, il sistema operativo non può semplicemente riprenderlo quando altri programmi richiedono più memoria. Se togli la memoria da programmi non appositamente predisposti per permetterlo, si bloccheranno effettivamente non appena tenteranno di utilizzare la memoria perduta.

    
risposta data 18.03.2018 - 01:09
fonte

Leggi altre domande sui tag