Czy istnieje sposób (być może skrypt), jak zautomatyzować ten proces:
petr@sova:~$ ps -ef | grep middleman
petr 18445 2312 1 12:06 pts/2 00:00:01 /home/petr/.rvm/gems/ruby-1.9.3-p362/bin/middleman
petr 18581 13621 0 12:08 pts/0 00:00:00 grep --color=auto middleman
petr@sova:~$ kill -9 18445
Niestety pkill
jest zbyt słaby, ponieważ muszę korzystać z -9
opcji włączonej kill
.
-9
zepkill
zbyt ...-KILL
niż-9
. Jaki numer odpowiada sygnałowi zależnemu od implementacji.SIGKILL
zdarza się, że jest9
na Linuksie i386 i Linux amd64, ale niekoniecznie wszędzie. ( Więcej informacji tutaj. )-KILL
też używać (ponieważ sprawia, że kod jest bardziej czytelny), należy zauważyć, żeSIGKILL = 9
jest określony przez POSIX , więc-9
jest obecnie dość przenośny (i nie zależy od jąder ani architektur).Odpowiedzi:
Możesz użyć powłoki do wykonania tego zadania:
Powłoka wykonuje
pidof middleman
najpierw polecenie . Dane wyjściowe pidof (8) to identyfikator procesu. Zatem powłoka zastępujepidof
-command identyfikatorem procesu i wykonujekill -9 18845
(lub cokolwiek innego poprawnym identyfikatorem procesu).źródło
kill -9 $(pgrep middleman)
?Istnieje jeszcze prostsze rozwiązanie niż qbi:
killall
pozwalamy zabijać procesy według nazwy i można określać sygnały.Zobacz,
man killall
aby uzyskać więcej informacji i dodatkowe opcje (jest ich sporo).Jak sama nazwa wskazuje, wysyła sygnał do wszystkich wymienionych procesów
middleman
. Ale to nie różni się od innych sposobów (jakpkill
). Ponadtopkill -9 middleman
będzie kierować procesy, których nazwa jest zgodna, ale nie jest równamiddleman
, na przykładmiddleman2
także.źródło
killall
dla zwycięstwa!Pozostałe odpowiedzi są całkowicie poprawne, ale równie dobrze mogę dodać trzecią opcję, aby wszystkie zostały tutaj udokumentowane. Możesz także użyć:
Zobacz,
man pkill
aby uzyskać więcej informacji i dodatkowe opcje.Tak naprawdę nie ma znaczenia, której z tych metod używasz. Wszyscy będą działać. Ale znajomość opcji jest przydatna, jeśli chcesz w jakiś sposób zmodyfikować zachowanie, ponieważ odpowiednie strony podręcznika pokazują, jakie inne pasujące opcje są dostępne.
źródło
middleman*
middleman
. To gdzie różnice w jaki sposób dokładniepkill
,killall
,pidof
igrep
procesy mecz naprawdę zacząć znaczenia!Ta
-f
opcja powoduje, że pasuje ona do pełnego wiersza poleceń, a nie tylko do nazwy procesu.Pamiętaj, że
-9
powinien to być sygnał ostateczny, a nie rutynowy.źródło
complete command line
Dla zabawy chciałbym dodać bardziej ręczny, oldschoolowy sposób
źródło
... grep [m]iddleman ...
aby uniknąć przypadkowego zabiciagrep
procesu. W ten sposób grep nie może się dopasować z powodu śmiesznego cytowania.który jest interaktywny (bezpieczny) i pasuje do częściowej nazwy polecenia.
źródło