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 .