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) que está sendo executado e não abc.sh. Portanto, ps auxnão conterá o processo abc.shpor causa do qual grepnão poderia resultar em nenhum resultado.
Portanto, a maneira correta de usá-lo é como:
ps aux | grep sh
Isso também pode retornar outro processo em execução, com a string shem qualquer lugar na saída de ps aux.
Você deve observar que o processo estará "em execução" quando a saída de ps auxtiver STATcomo R. Se for algo diferente disso, não está sendo executado na instância em que você acionou o comando para verificar os processos em execução. Os diferentes estados do processo podem ser encontrados na página de manual 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 topcomando para verificar se o processo está em execução ou em suspensão e a quantidade de CPU e RAM que está consumindo. (Isso listará novamente seu processo como sh).
No entanto, se você deseja que seu processo seja listado como abc.sh, deve ter a primeira linha do script que está executando como:
#!/bin/sh
para que o shell saiba qual aplicativo será usado para executar o script (sh, neste caso, altere-o #!/bin/bashpara bash) e forneça permissões executáveis ao processo usando:
chmod +x /path/to/abc.sh
substituindo /path/to/pela localização do abc.sharquivo e, em seguida, execute abc.shusando
/path/to/abc.sh
substituindo novamente /path/to/pelo local do abc.sharquivo.
S+significa