在AWS机器上保持Python脚本作为TCP套接字服务器运行
我需要在带有Ubuntu服务器18.04的AWS机器上部署Python脚本。 在脚本中,有一个使用自定义TCP端口(比如9999)的TCP服务器,它在不同线程中处理客户端的请求。 问题是,如果出现任何问题(主TCP服务器线程因任何原因死亡),我不知道哪种做法是保持此脚本运行的最佳做法。 此外,我真的不知道在AWSEC2系统中运行这种脚本的最佳实践是什么在AWS机器上保持Python脚本作为TCP套接字服务器运行,python,amazon-web-services,sockets,tcp,Python,Amazon Web Services,Sockets,Tcp,我需要在带有Ubuntu服务器18.04的AWS机器上部署Python脚本。 在脚本中,有一个使用自定义TCP端口(比如9999)的TCP服务器,它在不同线程中处理客户端的请求。 问题是,如果出现任何问题(主TCP服务器线程因任何原因死亡),我不知道哪种做法是保持此脚本运行的最佳做法。 此外,我真的不知道在AWSEC2系统中运行这种脚本的最佳实践是什么 到目前为止,我正在通过SSH手动启动脚本。脚本逻辑中的所有内容都运行良好,问题在于如何启动并继续运行这样的脚本。您应该看看该套件。它可以用来管理
到目前为止,我正在通过SSH手动启动脚本。脚本逻辑中的所有内容都运行良好,问题在于如何启动并继续运行这样的脚本。您应该看看该套件。它可以用来管理脚本的状态。如果脚本死亡或节点重新启动,它可以重新启动脚本 下面是一个示例服务 在此位置创建以下文件:/lib/systemd/system/example.service
[Unit]
Description=A short description of the script.
[Service]
Type=simple
# Script location
ExecStart=/path/to/some/script.py
# Restart the script in all circumstances (e.g If it exits successfully, fails or crashes).
Restart=always
[Install]
WantedBy=multi-user.target
然后将服务设置为在引导时自动启动并启动服务:
chmod 644 /lib/systemd/system/example.service
systemctl enable example
systemctl start example
如果您想了解更多有关systemd的信息,有很多可用的资源。我建议链接如下:
[0]
[1]
[2]
[3]
至于一般的最佳实践,在不了解更多脚本的情况下,很难提供建议。不建议在生产工作负载中使用python HTTPServer模块,因为它只执行基本的安全检查