Jak wyłączyć python simpleHTTPserver?
Więc próbuję nauczyć się d3, a wiki zasugerowała, że
Świetnie... tylko teraz mam uruchomiony serwer... ale w pewnym momencie myślę, że powinienem znowu to wyłączyć.Aby wyświetlać przykłady lokalnie, musisz mieć lokalny serwer WWW. Dowolne serwer WWW będzie działał; na przykład można uruchomić wbudowany Python Serwer:
python -m SimpleHTTPServer 8888 &
Czy jest lepszy sposób na wyłączenie go niż użycie kill <pid>
? To wygląda na coś wielkiego. młotek do małej roboty.
(używam Mac OS 10.6.8 (Snow Leopard))
FWIW: ctrl+c
daje około 10 linii traceback, narzekając na przerwanie.
kill -3 <pid>
wyświetla ostrzeżenie Findera w osobnym oknie "Python quit nieoczekiwanie".
Domyślne kill <pid>
i kill -15 <pid>
są względnie czyste (i proste).
8 answers
Po prostu wysyłasz sygnały do procesów. {[0] } jest poleceniem do wysyłania tych sygnałów.
Polecenie klawiatury Ctrl + C (⌃
+C
) wysyła SIGINT, kill -9
wysyła SIGKILL, a kill -15
wysyła SIGTERM.
Jaki sygnał chcesz wysłać na serwer, aby go zakończyć?
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-04-19 01:44:28
Jeśli uruchomiłeś serwer z
python -m SimpleHTTPServer 8888
Następnie możesz nacisnąć ctrl + c, aby opuścić serwer.
Ale jeśli uruchomiłeś serwer z
python -m SimpleHTTPServer 8888 &
Lub
python -m SimpleHTTPServer 8888 & disown
Musisz najpierw zobaczyć listę, aby zabić proces,
Uruchom polecenie
ps
Lub
ps aux | less
Pokaże ci taki proces ..
PID TTY TIME CMD
7247 pts/3 00:00:00 python
7360 pts/3 00:00:00 ps
23606 pts/3 00:00:00 bash
Możesz dostać PID stąd. i zabij ten proces, uruchamiając to polecenie..
kill -9 7247
Tutaj 7247 jest python id.
Również z jakiegoś powodu, jeśli port jest nadal otwarty, możesz zamknąć port za pomocą tego polecenia
fuser -k 8888/tcp
Tutaj 8888 to port TCP otwarty przez Pythona.
Mam nadzieję, że jest teraz jasne.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-07-10 06:57:30
Lub możesz po prostu zrobić kill %1
, co zabije pierwszą pracę umieszczoną w tle
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-09-28 21:18:21
MYPORT=8888;
kill -9 `ps -ef |grep SimpleHTTPServer |grep $MYPORT |awk '{print $2}'`
To jest to !!
Wyjaśnij wiersz poleceń:
ps -ef
: Lista wszystkich procesów.-
grep SimpleHTTPServer
: proces filtrowania należący do"SimpleHTTPServer" grep $MYPORT
: filtruj ponownie proces należy do "SimpleHTTPServer", gdzie portem jest MYPORT (.i. E: MYPORT=8888)-
awk '{print $2}'
: wypisuje drugą kolumnę wyniku, która jest PID (ID procesu) kill -9 <PID>
: Wymuś proces zabijania za pomocą odpowiedniego PID.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-05-13 15:39:57
Wydaje się to przesadą, ale możesz użyć supervisor , aby uruchomić i zatrzymać swój simpleHttpserver i całkowicie zarządzać nim jako usługą.
Lub po prostu uruchom go na pierwszym planie zgodnie z sugestią i zabij go kontrolką c
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-09-28 20:53:49
Okazuje się, że jest wyłączenie, ale to musi być zainicjowane z innego wątku.
To rozwiązanie zadziałało dla mnie: https://stackoverflow.com/a/22533929/573216
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:10:11
Wciśnięcie ctrl + C raz (poczekaj na traceback), a następnie wciśnięcie Ctrl + C ponownie mi pomogło:)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-03-17 16:26:12
Gdy uruchamiasz program jako proces w tle (dodając po nim &
), np.:
python -m SimpleHTTPServer 8888 &
Jeśli okno terminala jest nadal otwarte, możesz to zrobić:
jobs
Aby uzyskać listę wszystkich zadań w tle w uruchomionym procesie powłoki.
Może wyglądać tak:
$ jobs
[1]+ Running python -m SimpleHTTPServer 8888 &
Aby zabić zadanie, możesz wykonać kill %1
, aby zabić zadanie "[1]", lub wykonać fg %1
, aby umieścić zadanie na pierwszym planie (fg), a następnie użyć ctrl-C, aby je zabić. (Po prostu wpisanie fg
spowoduje wysłanie ostatniego tłem procesu na pierwszym planie).
W odniesieniu do SimpleHTTPServer wydaje się, że kill %1
jest lepszy niż fg
+ ctrl-C. przynajmniej nie protestuje komendą kill.
Powyższe zostało przetestowane w Mac OS, ale z tego co pamiętam działa tak samo w Linuksie.
Update: aby to zadziałało, serwer WWW musi zostać uruchomiony bezpośrednio z linii poleceń(dosłownie pierwszy fragment kodu). Użycie skryptu do jego uruchomienia spowoduje, że proces zostanie reach of jobs
.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-07-27 23:01:39