Perché usare ps -ef controllare il processo ogni volta che il pid cambierà?

2

Uso ps -ef per controllare il processo, ma ogni volta che il pid cambia, vedi il sotto, 1726 - > 1728 - > ...

aircraftdeMacBook-Pro:etc ldl$ ps -ef | grep safira
  501  1726   527   0 10:14上午 ttys000    0:00.00 grep safira
aircraftdeMacBook-Pro:etc ldl$ ps -ef | grep safira
  501  1728   527   0 10:14上午 ttys000    0:00.00 grep safira
aircraftdeMacBook-Pro:etc ldl$ ps -ef | grep safira
  501  2298   527   0 11:18上午 ttys000    0:00.00 grep safira
aircraftdeMacBook-Pro:etc ldl$ ps -ef | grep safira
  501  2301   527   0 11:18上午 ttys000    0:00.00 grep safira
    
posta aircraft 26.06.2017 - 05:22
fonte

2 risposte

1

Ogni volta che lo si esegue in Terminal vengono creati due nuovi processi per ps e grep , eseguiti per eseguire il proprio lavoro e quindi terminati correttamente. Quindi ogni invocazione riceve nuove PID.

Per escludere correttamente il processo grep search_string da grep'ing per search_string nell'uso dei risultati ps:

ps -ef | grep -v grep | grep search_string

o

ps -ef | grep [s]earch_string

es. ps -ef | grep -v grep | grep safira o ps -ef | grep [s]afira

    
risposta data 26.06.2017 - 05:59
fonte
0

La pipeline ps ... | grep ... può essere spesso sostituita con pgrep (o pkill ) che a differenza della pipeline sono abbastanza intelligenti da non corrispondere a se stessi:

pgrep safira
    
risposta data 26.06.2017 - 15:59
fonte

Leggi altre domande sui tag