我开发了一个 streamlit 应用,在使用时可能需要所有资源。由于它是一个演示应用,当用户在玩的时候没有给应用一些处理时间,该进程有时会被终止。

我如何检查该进程是否正在运行,如果它中断了,则streamlit run app.py自动运行“”。

该应用程序在 Red Hat Linux 上运行。

我可以使用 crontab 单行命令。

我偶然发现了以下片段(ps auxw | grep -iq "path_to_python path_tostreamlit/streamlit run app.py") || streamlit run path_to_file/app.py

我不确定这是否有帮助。

3

  • 1
    另一个进程,即主管进程,如果进程即将终止,则重新启动。systemd如今最常见的是这种情况。开发人员可以使用,而部署的应用程序通常以传统的、系统控制的方式使用它(或另一个服务控制守护进程)。


    – 

  • 1
    您没有提供太多背景信息,例如它最初是如何启动的?通常,这些天您通过 systemd 启动守护进程和应用程序;当您使用 RedHat 而不是 raspian 时,请查看…它可能正好解决您自己的问题 – 请注意,restart: always这应该很适合您。每分钟的cron可能会给您留下 59 秒的间隙,systemd 重启应该是即时的。


    – 

  • 这可能会有所帮助:


    – 

0