Fermare i processi senza interromperli

shell.pngVi è mai capitato di trovarvi nella necessità di usare il vostro Mac usufruendone appieno anche mentre il sistema è impegnato in una qualche operazione estremamente onerosa, come la conversione di un filmato in MPEG-2 o un rendering di Blender?
Spesso, a seconda della potenza del vostro computer, potreste ritrovarvi con un sistema estremamente poco reattivo, a volte lento al punto da non riuscire effettivamente a compiere ciò che si vuole compiere in modo ragionevolmente rapido.

Se non volete interrompere l'operazione pesante ma vi va bene metterla in pausa per continuarla in seguito i sistemi POSIX offrono, tra i vari segnali, qualcosa che fa al caso vostro: SIGSTOP.

SIGSTOP permette di mettere in pausa un processo a tempo indeterminato, liberando il processore da qualunque operazione ad esso collegata, permettendogli quindi di dedicarsi ad altro. La RAM utilizzata dal processo in questione non viene liberata automaticamente, ma il sistema la trasferisce automaticamente nei files di swap (quelli che noi utenti Mac amiamo chiamare "Memoria Virtuale") in caso di bisogno.

SIGCONT è l'opposto di SIGSTOP e fa ripartire il processo fermato.

Ci sono innumerevoli modi per invocare questi segnali, quello che utilizzo abitualmente si appoggia al comando killall (non c'è nulla di cui spaventarsi: killall è un comando dalle innumerevoli funzioni, solo alcune delle quali effettivamente "uccidono" dei processi).

Per prima è necessario individuare il nome reale del processo che si vuole fermare. Ciò può essere fatto tramite i comandi top o ps, tra gli altri, ma un metodo semplice da impiegare quando si è su OS X consiste nel guardare nella colonna "Nome Processo" dell'applicazione Monitoraggio Attività (ovvero /Applications/Utilities/Activity Monitor).

Una volta ottenuto il nome del processo basterà dare, da terminale (Applications/Utilities/Terminal) il comando
killall -STOP nomeprocesso

per sospendere l'esecuzione dello stesso.

Prevedibilmente, per riprenderla basterà dare il comando sottostante.
killall -CONT nomeprocesso

Come quasi sempre in ambiente POSIX gli spazi e alcuni caratteri possono non sembrare semplicissimi da gestire, se il nome del processo ne contiene (o contiene qualche carattere "strano") fareste quindi meglio a racchiuderlo tra virgolette, come nel seguente esempio.

killall -STOP "Toast Titanium"

Buona sospensione dei processi a tutti.;)

Pubblicato Mercoledi 14 Gennaio 2009 - 17:18 (letto 5898 volte)
Comment Commenti (0) Print Stampa



Le ultime notizie relative a questo argomento

Read Fermare i processi senza interromperli (14/01/2009 - 17:18) letto 5898 volte
Read pdisk: breve storia ed utilizzo (28/04/2007 - 19:35) letto 6101 volte

Tutte le notizie relative a questo argomento
shell.png

 
Calendario
Data: 03/08/2020
Ora: 19:43
« Agosto 2020 »
Lu Ma Me Gi Ve Sa Do
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
 
Utenti
Persone on-line:
admins 0 amministratori
users 0 utenti
guests 1 ospiti
 
Cerca