私はpythonBaseHTTPServerを使用しています、do_GET、do_POSTメソッドを処理できます、do_POSTメソッドで、os.systemを使用してLinuxシェルを実行します、Pythonスクリプトを強制終了すると、リスニングポートがまだ占有されているため、スクリプトを再度実行できません、 netstat -antp | grep 80は、bash/tailがポート80を占有していることを示しています
import sys
import os
import traceback
import time
import logging.handlers
import logging
from threading import *
from datetime import datetime
import urllib2
reload(sys)
sys.setdefaultencoding('utf-8')
class WebRequestHandler(BaseHTTPServer.BaseHTTPRequestHandler):
server_version = 'python httpserver'
sys_version = 'b'
backup_dir = None
def do_HEAD(s):
s.send_response(200)
s.send_header("Content-type", "text/html")
s.end_headers()
def do_GET(self):
if self.path == '/foo':
self.send_response(200)
os.system('nohup tail -f a.log &')
else:
self.send_error(404)
if __name__ == "__main__":
try:
server = BaseHTTPServer.HTTPServer(('',80), WebRequestHandler)
server.serve_forever()
except KeyboardInterrupt:
server.socket.close()