我在aws EC2 ubuntu实例上运行6个python文件。他们是电报机器人。它们运行得很好,但偶尔会有一个文件停止运行。我必须找到屏幕并重新运行它。
是否有办法保持这个脚本可靠地运行?
如果我每天用crontab重新启动ubuntu,它会自动运行所有的.py文件吗?
您可以编写一个shell脚本来检查特定的python文件是否正在运行,如果没有启动该文件。一旦shell脚本完成并开始工作,您可以为该shell脚本创建一个cron作业,以便每隔x分钟或任何您想要的时间检查一次。
单应用程序监视
下面的Bash脚本检查指定的python脚本是否正在运行,如果没有运行则启动python脚本
#!/bin/bash
current_service_name="YOU_SCRIPT_NAME.py"
if ! pgrep -f "python3 ${current_service_name}"
then
python3 ${current_service_name}
fi
多应用程序监视
#!/bin/bash
all_services=("YOUR_SCRIPT_NAME_1.py" "YOUR_SCRIPT_NAME_2.py" "YOUR_SCRIPT_NAME_3.py" "YOUR_SCRIPT_NAME_4.py" "YOUR_SCRIPT_NAME_5.py" "YOUR_SCRIPT_NAME_6.py")
for index in ${!all_services[@]} ; do
current_service_name="${all_services[$index]}"
if ! pgrep -f "python3 ${current_service_name}"
then
python3 ${current_service_name}
fi
done