Impossibile trovare processi inutilizzati per mezz'ora
Domanda
È possibile ottenere processi sotterranei da
ps ux
Sto cercando un modo per trovare i processi a cui non ho toccato per 30 minuti.
Come si può trovare processi inutilizzati per una mezz'ora?
Soluzione
Definisci "intatta" e "non utilizzati". Si può scoprire un sacco di cose utilizzando il parametro f
sulla ps (1) nei sistemi BSD-like, il -o
sui sistemi Solaris e sys / V-like.
Aggiornamento
In risposta al commento:
Bene, si può fare. Si consideri, ad esempio, qualcosa che fa un ps periodica, e memorizza il tempo di CPU utilizzato insieme con il tempo. (In realtà, si potrebbe fare questo meglio con un programma C chiamando le chiamate di sistema appropriate, ma questo è davvero un dettaglio di implementazione.) Tempo di campionamento Store e PID, e guardare per tempo di CPU del PID non aver cambiato nel corso dell'intervallo appropriata. Questo potrebbe anche essere implementato con un awk o un programma Perl come
while true; do
ps _flags_
sleep 30
done | awk -f myprog | tail -f
in modo che ogni volta che awk ottiene un'uscita ps
, si storpia esso, identifica i candidati, e li invia a mostrare attraverso tail -f
.
Ma allora si può anche avere processi demoni che non vengono chiamati spesso; non è chiaro per me che il tempo di CPU da solo è una buona misura.
Questo è il punto su come definire ciò che si vuole veramente fare: probabilmente c'è un modo per farlo, ma non riesco a pensare ad una combinazione di bandiere PS solo che lo farà