Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在AWS机器上保持Python脚本作为TCP套接字服务器运行_Python_Amazon Web Services_Sockets_Tcp - Fatal编程技术网

在AWS机器上保持Python脚本作为TCP套接字服务器运行

在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手动启动脚本。脚本逻辑中的所有内容都运行良好,问题在于如何启动并继续运行这样的脚本。您应该看看该套件。它可以用来管理

我需要在带有Ubuntu服务器18.04的AWS机器上部署Python脚本。 在脚本中,有一个使用自定义TCP端口(比如9999)的TCP服务器,它在不同线程中处理客户端的请求。 问题是,如果出现任何问题(主TCP服务器线程因任何原因死亡),我不知道哪种做法是保持此脚本运行的最佳做法。 此外,我真的不知道在AWSEC2系统中运行这种脚本的最佳实践是什么


到目前为止,我正在通过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模块,因为它只执行基本的安全检查