Każdy proces będzie wymieniony w wynikach ps aux; czy bieganie, spanie, zombie lub zatrzymany.
Jednak w twoim przypadku, ponieważ proces został uruchomiony przy użyciu sh abc.sh, shaplikacja (powłoka) jest uruchomiona i nie abc.sh. Dlatego ps auxnie będzie zawierać procesu, z abc.shpowodu którego grepnie może przynieść żadnego wyniku.
Prawidłowy sposób, w jaki powinieneś był go użyć, to:
ps aux | grep sh
Może to również zwrócić ci inny proces, który ma łańcuch w shdowolnym miejscu na wyjściu ps aux.
Należy zauważyć, że proces będzie „działał”, gdy wynik ps auxma wartość STATas R. Jeśli jest to coś innego, to nie działa w instancji, w której uruchomiłeś polecenie, aby sprawdzić uruchomione procesy. Różne stany procesu można znaleźć na stronie podręcznika dla 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
Równie dobrze możesz uruchomić toppolecenie, aby sprawdzić, czy proces działa, czy śpi i ile procesora i pamięci RAM zużywa. (To ponownie wyświetli listę Twojego procesu jako sh).
Jeśli jednak chcesz, aby proces był wymieniony jako abc.sh, to powinieneś mieć pierwszą linię skryptu, który uruchamiasz jako:
#!/bin/sh
aby powłoka wiedziała, jakiej aplikacji użyć do uruchomienia skryptu (w tym przypadku sh, zmień ją #!/bin/bashna bash), a następnie zapewnij uprawnienia do wykonywania procesu, używając:
chmod +x /path/to/abc.sh
zamieniając /path/to/na lokalizację abc.shpliku, a następnie uruchom abc.shza pomocą
/path/to/abc.sh
ponownie zastępując /path/to/lokalizację abc.shpliku.
S+środki