How do I shut down a python simpleHTTPserver?

前端 未结 8 1257
太阳男子
太阳男子 2020-12-12 12:29

So I\'m trying to learn d3, and the wiki suggested that

To view the examples locally, you must have a local web server. Any web server will work;

相关标签:
8条回答
  • 2020-12-12 12:54

    When you run a program as a background process (by adding an & after it), e.g.:

    python -m SimpleHTTPServer 8888 &
    

    If the terminal window is still open you can do:

    jobs
    

    To get a list of all background jobs within the running shell's process.

    It could look like this:

    $ jobs
    [1]+  Running                 python -m SimpleHTTPServer 8888 &
    

    To kill a job, you can either do kill %1 to kill job "[1]", or do fg %1 to put the job in the foreground (fg) and then use ctrl-c to kill it. (Simply entering fg will put the last backgrounded process in the foreground).

    With respect to SimpleHTTPServer it seems kill %1 is better than fg + ctrl-c. At least it doesn't protest with the kill command.

    The above has been tested in Mac OS, but as far as I can remember it works just the same in Linux.

    Update: For this to work, the web server must be started directly from the command line (verbatim the first code snippet). Using a script to start it will put the process out of reach of jobs.

    0 讨论(0)
  • 2020-12-12 12:58

    Hitting ctrl + c once(wait for traceback), then hitting ctrl+c again did the trick for me :)

    0 讨论(0)
  • 2020-12-12 13:03

    Turns out there is a shutdown, but this must be initiated from another thread.

    This solution worked for me: https://stackoverflow.com/a/22533929/573216

    0 讨论(0)
  • 2020-12-12 13:08

    if you have started the server with

    python -m SimpleHTTPServer 8888 
    

    then you can press ctrl + c to down the server.

    But if you have started the server with

    python -m SimpleHTTPServer 8888 &
    

    or

    python -m SimpleHTTPServer 8888 & disown
    

    you have to see the list first to kill the process,

    run command

    ps
    

    or

    ps aux | less
    

    it will show you some running process like this ..

    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
    

    you can get the PID from here. and kill that process by running this command..

    kill -9 7247
    

    here 7247 is the python id.

    Also for some reason if the port still open you can shut down the port with this command

    fuser -k 8888/tcp

    here 8888 is the tcp port opened by python.

    Hope its clear now.

    0 讨论(0)
  • 2020-12-12 13:12

    or you can just do kill %1, which will kill the first job put in background

    0 讨论(0)
  • 2020-12-12 13:14

    You are simply sending signals to the processes. kill is a command to send those signals.

    The keyboard command Ctrl+C sends a SIGINT, kill -9 sends a SIGKILL, and kill -15 sends a SIGTERM.

    What signal do you want to send to your server to end it?

    0 讨论(0)
提交回复
热议问题