Каждый процесс будет указан в выводе ps aux; будь то бег, сон, зомби или остановка.
Тем не менее, в вашем случае, поскольку вы запустили процесс с помощью sh abc.sh, shэто приложение (оболочка), которое работает, а не abc.sh. Следовательно, ps auxне будет содержать процесс, abc.shиз-за которого grepне может дать никакого результата.
Итак, правильный способ, которым вы должны были использовать это как:
ps aux | grep sh
Это также может вернуть вам другой процесс, который работает со строкой в shлюбом месте их вывода ps aux.
Вы должны заметить, что процесс будет «запущен», когда на выходе ps auxбудет свой STATas R. Если это что-то отличное от этого, оно не запускается в том случае, если вы запустили команду для проверки запущенных процессов. Различные состояния процесса можно найти на странице руководства для 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
Вы также можете запустить topкоманду, чтобы проверить, запущен ли процесс или находится в спящем режиме, а также количество ресурсов процессора и оперативной памяти, которые он потребляет. (Это снова перечислит ваш процесс как sh).
Однако, если вы хотите, чтобы ваш процесс был указан как abc.sh, то у вас должна быть первая строка скрипта, который вы запускаете как:
#!/bin/sh
чтобы оболочка знала, какое приложение использовать для запуска сценария (в данном случае sh, измените его #!/bin/bashна bash), а затем предоставьте исполняемые права доступа процессу, используя:
chmod +x /path/to/abc.sh
заменить /path/to/на местоположение abc.shфайла, а затем запустить abc.shс помощью
/path/to/abc.sh
снова заменив /path/to/на расположение abc.shфайла.
S+означает