Perché OS X Mavericks blocca il comando di eliminazione in Terminal?


24

Quando provo il purgecomando sul mio terminale, OS X Mavericks mi dà il seguente messaggio:

Unable to purge disk buffers: Operation not permitted

Questo non è stato il comportamento predefinito fino ad ora. Mi chiedo perché Apple l'abbia cambiato. C'è una ragione dietro questa decisione? Quali sono i vantaggi / gli svantaggi di questo?

Risposte:


23

È necessario eseguire questo comando con i privilegi di root. Provare:

> sudo purge

WARNING: Improper use of the sudo command could lead to data loss
or the deletion of important system files. Please double-check your
typing when using sudo. Type "man sudo" for more information.

To proceed, enter your password, or type Ctrl-C to abort.

Password:

Inserisci la password del tuo account e dovrebbe eseguire il comando purge.

Apple probabilmente ha preso la decisione per motivi di sicurezza. L'unico svantaggio è che devi inserire la password dell'amministratore. Il vantaggio è che, per gli utenti non amministratori, non possono eseguire questo comando e potenzialmente danneggiare il loro sistema operativo.

Di solito i comandi che richiedono sudoper essere eseguiti sono potenzialmente distruttivi o invasivi. Altri due comandi con questo requisito sono dtracee xcode-select.


3
Ero preoccupato per le app che presumibilmente "velocizzano le cose" utilizzando purge. Questa risposta mi ha aiutato a capire perché non è una buona idea.
Gabriel Izaias,

1
Non riesco a chiudere una domanda come duplicato su tutti i siti SE, quindi ho copiato palesemente la tua risposta qui . Sentiti libero di pubblicare la tua copia in modo che io possa cancellare la mia copia della tua risposta.
Hennes,

Puoi approfondire "Probabilmente Apple ha preso la decisione per motivi di sicurezza"? Che tipo di problemi di sicurezza ritieni crei dall'eliminazione dei comandi?
Tiago,

1

L'uso del purgecomando può avere gravi effetti negativi sulle prestazioni del sistema (dato che stai essenzialmente dicendo al kernel di dimenticare tutta la sua conoscenza accumulata sul tuo recente utilizzo, scorrere l'elenco inattivo e lanciare tutto, anche se qualche processo / driver stava per usarlo - e poi criticare / ricreare tutto da zero). Pertanto, ha senso che richiederebbe un certo livello di privilegio per eseguirlo.


1

Non sono un esperto, ma potrebbe avere qualcosa a che fare con la cosa della memoria compressa in OS X 10.9

Fare di più

Più memoria ha il tuo Mac a disposizione, più velocemente funziona. Ma quando hai più app in esecuzione, il tuo Mac utilizza più memoria. Con OS X Mavericks, la memoria compressa consente al tuo Mac di liberare spazio di memoria quando ne hai più bisogno. Man mano che il Mac si avvicina alla massima capacità di memoria, OS X comprime automaticamente i dati dalle app inattive, rendendo disponibile più memoria

Exrta Fast

Una volta che la memoria è compressa, il tuo Mac non deve perdere tempo a trasferire continuamente i dati avanti e indietro tra memoria e archiviazione. Quindi è in grado di fare di più in meno tempo. E poiché la compressione e la decompressione avviene quasi all'istante, l'unica cosa che noterai è quanto tutto sia reattivo. Soprattutto quando stai facendo tutto in una volta.

Fonte: http://www.apple.com/osx/advanced-technologies/(inesistente)

Vedi anche: OS X Mavericks è più che potente: è Power Smart (PDF)

Essi possono hanno fatto che evitare il più vecchio programma dal interfeering con il nuovo modo di fare le cose. Ma non ne ho idea.


-1

'purge' non rilascia abbastanza RAM. Sto usando SystemPal: https://itunes.apple.com/app/systempal/id453164367?mt=12 Funziona molto bene!


2
Quali differenze di comportamento ti fanno credere che un'app di terze parti dal Mac App Store possa eliminare più memoria rispetto a uno strumento incluso in OS X di Apple?
Graham Miln,

1
O che qualsiasi app / utente occasionale potrebbe prendere decisioni migliori sulla gestione della memoria rispetto al kernel?
jhfrontz,

-5

http://computers.tutsplus.com/tutorials/how-to-give-your-mac-a-performance-boost--mac-46271

Creazione di uno script terminale per eliminare la memoria

  1. Inizia aprendo il Terminale.

  2. Immettere la seguente riga:

    cd Desktop/

    e premere invio. Questo punta il Terminale sul desktop anziché sulla cartella dell'utente. È possibile puntare il Terminale verso qualsiasi cartella desiderata per questo tutorial.

  3. Accedere:

    touch Purge

    e premere invio. Questo crea un nuovo file chiamato "Elimina" sul desktop, ma non lo vedrai ancora.

  4. Accedere:

    pico Purge

    e premere invio. Questo apre l'editor Terminal per il file di eliminazione.

  5. Inserisci il seguente testo nell'editor:

    #!/bin/sh
    
    purge
  6. Premi Control + O e poi Invio per salvare il file sul desktop. Quindi premi Ctrl + X per uscire dall'editor. Assicurarsi di utilizzare il tasto di controllo, non il tasto di comando.

  7. Una volta tornato alla normale schermata Terminale, inserisci:

    chmod 755 Purge

    e premere invio. Questo rende accessibile il file che abbiamo appena creato. Per impostazione predefinita, OS X nasconde i file creati utilizzando il tocco.

  8. Ora avrai un file sul desktop chiamato "Elimina". È possibile aprire questo file per pulire automaticamente la memoria del computer. Quando il Terminale mostra un messaggio [Processo completato] è possibile chiudere l'applicazione e continuare.


Ciò non risolve il problema descritto nella domanda. Inoltre, correggi la formattazione del tuo post.
Nohillside

1
Sorgente del contenuto sempre copiato (cc @patrix).
grg
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.