ps -ef | grep xyz

https://xpil.eu/uz9

Polecenie w tytule dzisiejszego wpisu wyszukuje wszystkie procesy systemowe, kt贸re by艂y uruchomione z tekstem "xyz", przy czym owo xyz to mo偶e by膰 zar贸wno sama nazwa polecenia (b膮d藕 jej fragment) jak te偶 opcja lub parametr.

Bardziej konkretny przyk艂ad: za艂贸偶my, 偶e uruchomili艣my wcze艣niej tunel ssh do jakiego艣 zdalnego serwera i chcemy teraz sprawdzi膰, czy proces tunelu ci膮gle dzia艂a.

Tunel uruchomili艣my poleceniem, dajmy na to:

ssh byniek@mojserwer.pl -L 1234:mojserwer.pl:1234

Je偶eli chcemy teraz wy艣wietli膰 list臋 proces贸w zawieraj膮cych w wierszu polece艅 s艂owo mojserwer, zrobimy tak:

ps -ef | grep mojserwer

Efekt? Lista proces贸w zgodnie z oczekiwaniem, plus jeden: powy偶sza komenda grep te偶 zawiera s艂owo mojserwer (jako parametr), wi臋c te偶 si臋 pojawi na li艣cie. A tego przecie偶 nie chcemy.

Przyk艂ad obrazuj膮cy o czym m贸wi臋:

Komenda listuj膮ca procesy zawieraj膮ce s艂owo apache wy艣wietla m. in. sam膮 siebie (ostatnia linijka, proces numer 43429)

W przypadku og贸lnym nie jest to jaki艣 wielki problem. Ale czasem piszemy skrypt, kt贸ry b臋dzie modyfikowa艂 istniej膮ce procesy (na przyk艂ad wy艂膮cza艂 je) i wtedy mo偶e si臋 okaza膰, 偶e ubijemy proces, kt贸rego nie powinni艣my.

Rozwi膮zanie?

Wyra偶enia regularne!

A konkretnie jeden prosty trick:

Tutaj nie widzimy na li艣cie procesu grep, bo wyszukujemy proces贸w zawieraj膮cych s艂owo apache, a nie [a]pache. Poniewa偶 jednak grep traktuje sw贸j pierwszy parametr jako wyra偶enie regularne, znajdzie nam wszystkie procesy z apache w wierszu polece艅, bo apache pasuje do [a]pache.

Voila!

https://xpil.eu/uz9

1 Comment

  1. Mo偶na tak偶e:
    ps -ef | grep mojserwer | grep -v ” grep ”
    albo, skoro raczej chodzi nam o ubijanie proces贸w, czyli zapewne o PID, skorzysta膰 z pgrep:
    pgrep mojserwer
    Z opcjonalnym -f (man pgrep).

Leave a Comment

Komentarze mile widziane.

Je偶eli chcesz do komentarza wstawi膰 kod, u偶yj sk艂adni:
[code]
tutaj wstaw sw贸j kod
[/code]

Je偶eli zrobisz liter贸wk臋 lub zmienisz zdanie, mo偶esz edytowa膰 komentarz po jego zatwierdzeniu.