Vorrei sapere qualsiasi comando che posso eseguire per conoscere l'ora di fine di un processo.
Ho già avviato il processo e conosco il suo PID, ma voglio sapere se c'è qualche comando che può dirmi a che ora è finito.
Grazie per l'aiuto.
Vorrei sapere qualsiasi comando che posso eseguire per conoscere l'ora di fine di un processo.
Ho già avviato il processo e conosco il suo PID, ma voglio sapere se c'è qualche comando che può dirmi a che ora è finito.
Grazie per l'aiuto.
Risposte:
Esegui questo:
while kill -0 <PID>; do sleep 1; done; echo "Process finished at $(date +"%F %T")."
Oppure puoi creare uno script bash. wait-for-death.sh:
#!/bin/bash
if ! kill -0 $1; then
echo "Process $1 doesn't exist."
exit 1
fi
while kill -0 $1; do
sleep 1
done
echo "Process $1 finished at $(date +"%F %T")."
Dagli quindi il permesso di esecuzione:
chmod +x wait-for-death.sh
ed eseguirlo passando il processo PID:
./wait-for-death.sh <PID>
while kill -0 <pid>; do ...è più portatile - funzionerà anche su sistemi non Linux. E non c'è motivo di usare bash: il tuo codice non usa alcun bashismo, quindi /bin/shqui va benissimo.
kill -0, penso che sia una soluzione più elegante.
Forse il comando si timeadatta alle tue necessità:
time [options] command [arguments...]
Esempio:
time /local/usr/bin/myProcess arg1 arg2
Una volta terminato il processo timemostrerà alcune statistiche come il tempo impiegato per completare il processo (in pochi secondi penso).
Controlla la pagina man o dai un'occhiata a questa pagina man online .
timenon è un'opzione.
at(vedi la manpage:)man at. Questo lo metterà in coda come un lavoro, ti verrà notificato quando è finito, ecc. È molto semplice, simile a Cron, ma per singoli scatti di lavori.