Todo processo será listado na saída de ps aux
; seja correndo, dormindo, zumbi ou parado.
No entanto, no seu caso, desde que você executou o processo usando sh abc.sh
, sh
é o aplicativo (shell) em execução e não abc.sh
. Portanto, ps aux
não conterá o processo abc.sh
, porque grep
não pode produzir nenhum resultado.
Então, a maneira correta que você deveria ter usado é como:
ps aux | grep sh
Isso também pode retornar outros processos em execução com a string sh
em qualquer lugar na saída de ps aux
.
Você deve observar que o processo estará "em execução" quando a saída de ps aux
tiver seu STAT
como R
. Se for algo diferente disso, não está sendo executado na instância em que você disparou o comando para verificar os processos em execução. Os diferentes estados do processo podem ser encontrados na página man do 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
Você também pode executar o comando top
para verificar se o processo está sendo executado ou suspenso e a quantidade de CPU, RAM que está sendo consumida. (Isso listará novamente seu processo como sh
).
No entanto, se você quiser que seu processo seja listado como abc.sh
, você deve ter a primeira linha do script em execução:
#!/bin/sh
para que o shell saiba qual aplicativo usar para executar o script (neste caso, altere-o para #!/bin/bash
para o bash) e forneça permissões executáveis para o processo usando:
chmod +x /path/to/abc.sh
substituindo /path/to/
pela localização do arquivo abc.sh
e, em seguida, execute abc.sh
usando
/path/to/abc.sh
novamente substituindo /path/to/
pela localização do arquivo abc.sh
.