Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
196 views
in Technique[技术] by (71.8m points)

python - How to move SimpleSocket server into a background process

I have a simple socketServer that works perfectly on the main thread.

#Server PORT
PORT = 8020
#reassign variables
Handler = Server #this is a SimpleHTTPHandler

httpd = SocketServer.TCPServer(("", PORT), Handler)

httpd.serve_forever()

I need to have this run in the background and have the ability to stop the process at will. What is the proper way to do this?

EDIT

Sorry I was unclear. I need to have the server running non stop and I can only access the system from SSH so I can't just start it and walk away.

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

Assuming you are running your script on a POSIX operating system and your script is named socket_server.py, you can use nohup like this:

$ nohup python socket_server.py >> /dev/null 2>&1 &

That will put your script in the background, make it immune to hangups, and you can exit your SSH session. The shell will print out the job number and PID:

$ [1] 1234

You can stop it later by getting sending a SIGTERM using kill:

$ kill -SIGTERM 1234

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...