Come apt-get remove xterm
va? E dopo che è stato disinstallato, xterm
non si chiude e continua a funzionare normalmente.
Il xterm
processo è memorizzato nella cache mentre è in esecuzione?
Come apt-get remove xterm
va? E dopo che è stato disinstallato, xterm
non si chiude e continua a funzionare normalmente.
Il xterm
processo è memorizzato nella cache mentre è in esecuzione?
Risposte:
Non proprio. Il file è già aperto dal programma. L'eliminazione del file (e quindi la sua sostituzione con un'altra versione) non influisce sul programma in esecuzione poiché il file originale viene tenuto aperto (anche se senza un nome sul disco per aprirlo di nuovo) fino a quando il programma non ha terminato. Solo quando tutti gli handle del file sono chiusi vengono rilasciati i suoi blocchi di dati sul disco. Fino ad allora il file aperto può essere letto e scritto come al solito - l'unica modifica è che nessun altro può aprirlo poiché il suo nome è stato rimosso.
Mentre parti del programma potrebbero essere già state lette in ram quando viene eliminato, potrebbero comunque essere scartate e rilette in seguito, oppure nuove parti del programma che non erano state eseguite in precedenza possono ancora essere caricate dal file eliminato.
rm -rf /
funziona .....
rm -rf /
che non funzionerà se si tenta di eseguirlo una seconda volta immediatamente dopo;)
lsof
output, e so che è come appare un file 'zombie' ... ma c'è un modo per salvare il contenuto di un tale file dalla scomparsa quando muore l'ultimo handle di file?
root
potrebbe essere in grado di creare un nome per esso (e quindi impedire l'eliminazione) utilizzando la linkat
chiamata di sistema. Ma gli eseguibili e le librerie sono mappati in memoria, il che non richiede un handle di file. Non conosco alcun modo per ottenere un handle su un file che esiste solo perché è mappato in memoria. Sebbene sia possibile accedere agli eseguibili /proc
mentre sono in esecuzione, quindi sono solo le librerie e altri file mappati in memoria che potrebbero essere irreparabili. Se vuoi maggiori dettagli a riguardo, dovresti porlo come domanda separata.
Il
xterm
processo è memorizzato nella cache mentre è in esecuzione?
Esattamente. È simile al processo che ti consente di installare aggiornamenti sulle cose mentre sono in esecuzione senza che si blocchino. E anche perché devi riavviare i servizi dopo averli aggiornati. Una volta che qualcosa è in esecuzione, il suo binario è in memoria.
Se dipende da altri file (che non sono in uno stato "aperto" bloccato) che vengono rimossi o sostituiti, ciò potrebbe causare problemi ma per qualcosa di così discreto xterm
, che non è un problema.
È infatti una caratteristica di come funzionano i computer: quando un programma viene invocato, viene effettivamente caricato nella memoria e funziona da lì.
Un file funziona effettivamente allo stesso modo. Per evitare problemi, molti file nei sistemi ISIX creano blocchi.
Il vero indovinello è il motivo per cui non puoi fare cose così e simili in Windows.
Questa funzione è in realtà ciò che ti consente di aggiornare l'intero sistema, compresi i programmi attivi nel tuo sistema. ;)
apt-get
sta disinstallandoxterm
e non ha idea che in qualche modo dipenda da unxterm
processo - quindi si tratta di "Perché è possibile disinstallare xterm durante l'esecuzione?". Bella domanda