Ogni processo sarà elencato nell'output di ps aux
; sia correndo, dormendo, zombi o fermato.
Tuttavia, nel tuo caso, poiché hai eseguito il processo utilizzando sh abc.sh
, sh
è l'applicazione (shell) in esecuzione e non abc.sh
. Pertanto, ps aux
non conterrà il processo a abc.sh
causa del quale grep
non è stato possibile ottenere alcun risultato.
Quindi, il modo corretto che avresti dovuto usare è come:
ps aux | grep sh
Questo potrebbe anche restituirti altri processi che eseguono la stringa in sh
qualsiasi punto del loro output di ps aux
.
Si noti che il processo sarà "in esecuzione" quando l'output di ps aux
ha il suo STAT
as R
. Se è qualcosa di diverso da quello, non è in esecuzione nell'istanza in cui è stato attivato il comando per verificare i processi in esecuzione. I diversi stati del processo sono disponibili nella pagina man di ps:
D uninterruptible sleep (usually IO)
R running or runnable (on run queue)
S interruptible sleep (waiting for an event to complete)
T stopped, either by a job control signal or because it is being traced
W paging (not valid since the 2.6.xx kernel)
X dead (should never be seen)
Z defunct ("zombie") process, terminated but not reaped by its parent
Puoi anche eseguire il top
comando per verificare se il processo è in esecuzione o inattivo e la quantità di CPU, RAM che sta consumando. (Questo elencherà nuovamente il processo come sh
).
Tuttavia, se vuoi che il tuo processo sia elencato come abc.sh
, allora dovresti avere la prima riga dello script che stai eseguendo come:
#!/bin/sh
in modo che la shell sappia quale applicazione utilizzare per eseguire lo script (sh in questo caso, cambiarlo in #!/bin/bash
per bash) e quindi fornire autorizzazioni eseguibili al processo usando:
chmod +x /path/to/abc.sh
sostituendo /path/to/
con il percorso del abc.sh
file ed eseguirlo abc.sh
usando
/path/to/abc.sh
sostituendo nuovamente /path/to/
con la posizione del abc.sh
file.
S+
significa stat