Кожен процес буде перерахований у висновку ps aux; будь то біг, сон, зомбі чи зупинений.
Однак у вашому випадку, оскільки ви запустили процес з використанням sh abc.sh, sh- це програма (оболонка), яка працює, а не вона abc.sh. Отже, ps auxне буде містити процес, abc.shчерез який grepне міг би дати жодного результату.
Отже, правильний спосіб, який ви мали використовувати, це:
ps aux | grep sh
Це також може повернути вам інший процес, який запущений із рядком в shбудь-якому місці їх виводу ps aux.
Слід зазначити, що процес буде "запущеним", коли результат ps auxмає його STATяк R. Якщо це щось інше, ніж це, воно не працює в тому екземплярі, який ви запустили, щоб перевірити запущені процеси. Різні стани процесу можна знайти на сторінці man для 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/bashbash), а потім надасть виконавчі дозволи процесу, використовуючи:
chmod +x /path/to/abc.sh
заміна /path/to/з місцем розташування abc.shфайлу , а потім запустити з abc.shдопомогою
/path/to/abc.sh
знову замінивши /path/to/розташування abc.shфайлу.
S+означає