Todos los procesos se enumerarán en la salida de ps aux
; ya sea corriendo, durmiendo, zombie o parado.
Sin embargo, en su caso, dado que ejecutó el proceso usando sh abc.sh
, sh
es la aplicación (shell) la que se está ejecutando y no abc.sh
. Por lo tanto, ps aux
no contendrá el proceso abc.sh
debido a que grep
no podría dar ningún resultado.
Entonces, la forma correcta en que debería haberlo usado es como:
ps aux | grep sh
Esto también puede devolverle otro proceso que se está ejecutando con la cadena sh
en cualquier lugar de su salida de ps aux
.
Debe tener en cuenta que el proceso se "ejecutará" cuando la salida de ps aux
tenga su STAT
como R
. Si es algo diferente a eso, no se está ejecutando en la instancia en la que activó el comando para verificar los procesos en ejecución. Los diferentes estados del proceso se pueden encontrar en la página del manual para 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
También podría ejecutar el top
comando para verificar si el proceso se está ejecutando o inactivo y la cantidad de CPU, RAM que está consumiendo. (Esto volverá a enumerar su proceso como sh
).
Sin embargo, si desea que su proceso aparezca en la lista abc.sh
, entonces debe tener la primera línea del script que está ejecutando como:
#!/bin/sh
para que el shell sepa qué aplicación usar para ejecutar el script (sh en este caso, cámbielo a #!/bin/bash
bash) y luego proporcionará permisos ejecutables para el proceso usando:
chmod +x /path/to/abc.sh
reemplazar /path/to/
con la ubicación del abc.sh
archivo y luego ejecutar abc.sh
usando
/path/to/abc.sh
nuevamente reemplazando /path/to/
con la ubicación del abc.sh
archivo.
S+
significa estadística?