Kiedy to zrobię ps -ef|grep python
, otrzymuję:
myusername 4492 2994 0 10:32 pts/0 00:00:01 /home/myusername/.virtualenvs/myproject/bin/ipython manage.py runserver
root 6665 1 0 10:42 ? 00:00:00 /usr/bin/python /usr/lib/system-service/system-service-d
myusername 14051 13497 0 11:28 pts/7 00:00:00 grep --color=auto python
Jak uzyskać zamiast tego tylko użytkownika, który uruchamia proces, identyfikator pid i polecenie są uruchamiane dla procesu, jak w poniższym pliku wyjściowym?
myusername 4492 /home/myusername/.virtualenvs/myproject/bin/ipython manage.py runserver
root 6665 /usr/bin/python /usr/lib/system-service/system-service-d
ps --fields="user pid command"
Odpowiedzi:
Chyba szukasz argumentu -o:
Poleceniem, które chcesz, byłoby (Ubuntu):
w OpenSolaris polecenie to:
źródło
Warning: bad ps syntax, perhaps a bogus '-'? See http://procps.sf.net/faq.html
man ps
. Może składnia jest nieco inna w twoim systemie.ps -o uid,pid,cmd -e|grep python
ps -o user,pid,cmd -e|grep '[p]ython'
Najprostszy byłby prawdopodobnie:
W ten sposób otrzymujesz wszystko bezpośrednio
ps
i nie musisz niczego analizować.Ze strony podręcznika
ps
:Ta
-C
opcja będzie działać, jeśli działaszpython
interaktywnie, a nie jeśli Python uruchamia skrypt. W takim przypadku powinieneś użyć-C scriptname.py
zamiast tego.źródło
Moja wersja PS jest inna, więc może wymagać drobnych poprawek, ale możesz użyć cięcia (i ewentualnie tr w zależności od tego, co próbujesz osiągnąć) - na przykład coś w rodzaju
Zapewni znaki od 1 do 16 i 50 od każdego wiersza instrukcji ps. (Twoje rzeczywiste liczby prawdopodobnie będą wymagać trochę masowania).
Innym sposobem na to (ale stracisz formatowanie) może być
Który skompresuje białe znaki w poleceniu ps, a następnie weź pola 1,2 i 8 i wyświetl je.
źródło
Przykład:
Wyjaśnienie:
-e
wszystkie procesy-o
format zdefiniowany przez użytkownikauser,pid,cmd
Pokaż użytkownika, identyfikator procesu, kolumny poleceńUwaga: jeśli używasz
-f
z tym,-e
co sugerują inni, mogą pojawić się błędy. Wynika to z faktu, że oba te parametry kontrolują format wyjściowy i należy użyć tylko jednego z nich:źródło