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
, sh
aplikacja (powłoka) jest uruchomiona i nie abc.sh
. Dlatego ps aux
nie będzie zawierać procesu, z abc.sh
powodu którego grep
nie 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 sh
dowolnym miejscu na wyjściu ps aux
.
Należy zauważyć, że proces będzie „działał”, gdy wynik ps aux
ma wartość STAT
as 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ć top
polecenie, 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/bash
na 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.sh
pliku, a następnie uruchom abc.sh
za pomocą
/path/to/abc.sh
ponownie zastępując /path/to/
lokalizację abc.sh
pliku.
S+
środki