2013-08-25 12 views
31

Chcę zabić interprete Pythona - Intencją jest, aby wszystkie pliki Pythona, które są uruchomione w tym momencie zatrzyma się (bez informacji na temat tych plików). oczywiście procesy powinny zostać zamknięte.Kill interpon Pythona w linux z terminalu

Wszelkie pomysły na usuwanie plików w pythonie lub niszczenie interpetera są ok: D (pracuję z maszyną wirtualną). muszę go od terminalu, bo pisać kod C i użyć polecenia linux ... Nadzieja na pomoc

Odpowiedz

45
pkill -9 python 

powinien zabić każdego uruchomionego Pythona.

+1

jeśli nazwa procesu zmienił (od Pythona do innej nazwy) –

+7

używać innej nazwy –

+0

Możesz być także bardziej selektywny za skrypt Pythona z: https://stackoverflow.com/a/34239260/895245 –

26

Jest raczej surowy sposób to zrobić, ale należy zachować ostrożność, ponieważ po pierwsze, to opiera się na procesie interpretera Pythona identyfikują się jako pytona, a po drugie , towarzyszy temu także zabijanie wszelkich innych procesów zidentyfikowanych pod tą nazwą.

W skrócie, można zabić wszystkich tłumaczy Pythona przez wpisanie tego do swojej skorupy (upewnij się przeczytać zastrzeżenia, wyżej!):

ps aux | grep python | grep -v "grep python" | awk '{print $2}' | xargs kill -9 

Aby to przełamać, to w jaki sposób to działa. Pierwszy bit, ps aux | grep python | grep -v "grep python", pobiera listę wszystkich procesów, które nazywają się python, z grep -v upewniając się, że polecenie grep, które właśnie uruchomiłeś, nie jest również zawarte w wynikach. Następnie używamy awk, aby uzyskać drugą kolumnę danych wyjściowych, która ma identyfikator procesu. Wreszcie, wszystkie te procesy są (raczej bezceremonialnie) zabijane przez dostarczenie każdej z nich kill -9.

+2

Możesz zmienić trzecią sekcję rury na grep -v "grep", aby zignorować wszystkie grepy na wyjściu ps aux. Dzięki temu polecenie jest bardziej ogólne, więc można zmienić drugą sekcję rury, nie martwiąc się o zmianę trzeciej. ps aux | grep "python -u" | grep -v "grep" | awk "{print 2 $}" xargs kill -9 – TechplexEngineer

3

pgrep -f youAppFile.py | xargs kill -9

pgrep zwraca PID określonego pliku i zabijasz tylko określoną aplikację.

2

pgrep -f | xargs kill -9 to zabije twoją usługę procesu. W moim przypadku jest to "pgrep -f python | xargs kill -9'

Powiązane problemy