我想在 Red-hat Linux 上部署一个 Python 应用程序,该应用程序读取 Kafka 流并将数据推送到一些下游进程。
部署/运行我的 Python 应用程序的最佳方法/做法是什么,以便它始终在后台运行并在启动时重新启动?
目标是不断读取 Kafka 流并持续推送数据。
答案1
您应该在或 中.service
为您的应用程序创建文件并启用它。如下所示:/etc/systemd/system
/usr/lib/systemd/system
[Unit]
Description=My script
After=network.target
[Service]
Type=simple
Restart=always
RestartSec=5
WorkingDirectory=/tmp
StartLimitInterval=0
StartLimitBurst=999999
User=myuser
Group=myuser
ExecStart=/path/to/my/executable/script
[Install]
WantedBy=multi-user.target
例如它将是yourservice.service
文件。然后执行systemctl daemon-reload
,systemctl enable yourservice.service
和systemctl start yourservice.service
。当您不使用 时,此方法适用virtualenv
。
答案2
您可以配置 uwsgi 或 gunicorn 作为服务运行,网上应该有示例(我没有添加它们,因为它们很快就会过时)。如果您在服务器上有 systemd,它可能