Кожен процес буде перерахований у висновку 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/bash
bash), а потім надасть виконавчі дозволи процесу, використовуючи:
chmod +x /path/to/abc.sh
заміна /path/to/
з місцем розташування abc.sh
файлу , а потім запустити з abc.sh
допомогою
/path/to/abc.sh
знову замінивши /path/to/
розташування abc.sh
файлу.
S+
означає