Каждый процесс будет указан в выводе ps aux
; будь то бег, сон, зомби или остановка.
Тем не менее, в вашем случае, поскольку вы запустили процесс с помощью sh abc.sh
, sh
это приложение (оболочка), которое работает, а не abc.sh
. Следовательно, ps aux
не будет содержать процесс, abc.sh
из-за которого grep
не может дать никакого результата.
Итак, правильный способ, которым вы должны были использовать это как:
ps aux | grep sh
Это также может вернуть вам другой процесс, который работает со строкой в sh
любом месте их вывода ps aux
.
Вы должны заметить, что процесс будет «запущен», когда на выходе ps aux
будет свой STAT
as 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+
означает