Mam skrypt Python, który jest uruchomiony i ciągle wyrzuca błędy do pliku dziennika.
Chcę edytować skrypt i uruchomić go ponownie, ale nie wiem, jak go zatrzymać.
Obecnie jestem zalogowany na Linuksie za pośrednictwem PuTTy i tam zajmuję się kodowaniem. Czy istnieje polecenie zatrzymania skryptu python w systemie Linux?
Wypróbuj tę prostą linię, zakończy wszystkie
script.py
:źródło
Znajdź identyfikator procesu (PID) skryptu i wydaj polecenie a,
kill -9 PID
aby zabić proces, chyba że jest on uruchomiony jako proces forground na terminalu, w którym to przypadku możesz Contrl-C, aby go zabić.Znajdź PID za pomocą tego polecenia:
Zawiera listę wszystkich procesów Pythona, wybierz właściwy i zanotuj jego PID. Następnie
zabije proces. Na tym etapie może pojawić się komunikat o zakończeniu procesu.
Alternatywnie możesz użyć
top
polecenia, aby znaleźć proces python. Po prostu wpiszk
(dla zabicia), atop
program wyświetli monit o podanie PID procesu zabicia. Czasami trudno jest zobaczyć wszystkie procesy, którymi jesteś zainteresowany,top
ponieważ mogą one przewijać ekran, myślę, żeps
podejście jest łatwiejsze / lepsze.źródło
-9
zabiłbym go najpierw „miękko”. Tylko jeśli to nie zareaguje, skorzystałbym-9
.Jeśli program jest bieżącym procesem w twojej powłoce, wpisanie Ctrl-C zatrzyma program Python.
źródło
W idealnym świecie przeczytasz dokumentację skryptu i zobaczysz, jakich sygnałów należy użyć, aby nakazać mu zakończenie. W prawdziwym życiu prawdopodobnie chcesz wysłać mu sygnał TERM, po pierwsze, być może używając sygnału KILL, jeśli ignoruje TERM. Więc to, co robisz, to znajdź identyfikator procesu za pomocą polecenia ps (jak ktoś już opisał). Następnie możesz biegać
kill -TERM <pid>
. Niektóre programy czyszczą rzeczy, takie jak pliki, które mogły otworzyć, gdy otrzymają taki sygnał, więc fajniej jest zacząć od czegoś takiego. Jeśli to się nie powiedzie, to nie ma tam wiele do zrobienia oprócz wielkiego młota:kill -KILL <pid>
. (możesz użyć wartości liczbowych, np. -KILL = -9, i prawdopodobnie nigdy się nie zmienią, ale w sensie teoretycznym bezpieczniej byłoby używać nazw)źródło
Jeśli znasz nazwę skryptu, możesz zredukować całą pracę do jednego polecenia:
Jeśli chcesz się upewnić, że jest to skrypt Pythona:
Jeśli chcesz zabić wszystkie skrypty python:
Podejrzewam, że masz pomysł;)
Przypomnienie: musisz zacytować nazwę skryptu jak w przykładach.
źródło