这是我的script.py
:
from http.server import HTTPServer, BaseHTTPRequestHandler
class Serv(BaseHTTPRequestHandler):
def do_GET(self):
if self.path == '/':
self.path = '/index.html'
try:
file_to_open = open(self.path[1:]).read()
self.send_response(200)
except FileNotFoundError:
file_to_open = "Not Found!"
self.send_response(404)
self.end_headers()
self.wfile.write(bytes(file_to_open, 'utf-8'))
httpd = HTTPServer(('0.0.0.0', 8000), Serv)
httpd.serve_forever()
这是我的/lib/systemd/system/python.service
:
[Unit]
Description=test
Documentation=test doc
[Service]
Type=notify
WorkingDirectory=/home/python
ExecStart=/usr/bin/python /home/python/server.py
ExecReload=/bin/kill -s HUP $MAINPID
TimeoutStartSec=0
RestartSec=2
Restart=always
KillMode=process
[Install]
WantedBy=multi-user.target
当我运行这个命令时,它卡住了,不能让我返回终端:
systemctl daemon-reload
systemctl start python
但是我可以去http://ip:8000
,我可以看到我的index.html
内容。
这是一个简单的Web服务器,我想把它作为一个服务来运行(由于某些原因,我不想运行python -m http.server 8000
)。
如何将此脚本作为服务运行?
1条答案
按热度按时间qnzebej01#
修复您的
python.service
文件:Type=notify
意味着您的服务在完成启动时应该使用READY=1
通知通知。