Ilekroć testuję klasę Pythona, nad którą pracuję, często inicjuję i ponownie inicjuję Pythona, aby odświeżyć aktualizacje, które wprowadzam do kodu. Kiedy zamykam okno Terminal później, pojawia się okno z informacją, że zaraz zakończę wiele uruchomionych instancji Pythona.
Czy to błąd ze strony terminalu, czy naprawdę to wszystko uruchamiam? I Ctrl-Z za każdym razem, ale zawsze mówi
[8]+ Stopped Python
gdzie 8 jest przyrostowe i często przechodzi w lata 20 i 30. Czy robię coś głupiego?
python
i zakończę klawiszem Ctrl-Z.Odpowiedzi:
Nie zamykasz (ani nie kończysz ) programu, naciskając
Ctrl-Z
, ale go zawieszasz. NaciśnijCtrl-D
( koniec transmisji ), aby wyjść z Pythona.Po zawieszeniu uruchomionego procesu wchodzisz do
python
innego skryptu uruchamiania pośredniego, aby „wznowić” program. Ale to uruchamia osobną instancję programu!Musisz wprowadzić albo
%n
(zn
wyświetloną liczbą, więc np.%8
), Aby wznowić zawieszony proces z indeksem zadanian
lubfg
wznowić ostatnio zawieszony proces.Jeśli
Ctrl-Z
sięfg
wycofasz, indeks też się nie zwiększy.W rzeczywistości działa mnóstwo osobnych
python
instancji. Wyświetl je, wpisującjobs
.man
Strona na tobash
, jak twój shell zarządza tymi zadaniami.źródło
disown -a
disown
zamiast postępować zgodnie z instrukcjami zawartymi w moim poście, możesz je racjonalnie zrobićkill
.ps ax | grep python
pokaże ich identyfikatory procesów, których możesz użyć jako argumentówkill
. Lub, jeśli jest to dość często restartowany komputer stacjonarny, po prostu uruchom ponownie.