python - 无法使用 Crontab @reboot 运行第二个 py 脚本 - Ubuntu 20.04

标签 python ubuntu

在我的带有 ubuntu 20.04 的树莓派设备上,当我在重启设备后手动运行 start.py 代码时
在文件夹/home/okay 中

python3 start.py
两个脚本一个接一个地运行。
但是当我把这段代码放在 crontab 中的@reboot 中时,
@reboot sleep 300 && python3 /home/okay/start.py
只有第一个脚本运行,第二个不运行。
py脚本如下
import os
os.system ("python3 /home/okay/avadot.py & ")
os.system ("python3 /home/okay/main.py &")
我用 os.system 编写代码的原因是,两个 py 文件都运行一段时间 True: 每 10 分钟循环一次。
因此,一个完成后不能启动另一个,两者必须同时开始工作。

最佳答案

将 Python 用于 cron 似乎没有多大意义。工作。os.system("cmd &")将运行 cmd作为它生成的 shell 的后台作业,但 shell 会一直挂起,直到后台作业完成。您可以通过多种方式分离,但最简单的解决方案是从同一个 shell 运行这两个作业,而根本不使用 Python。

#!/bin/sh
python3 /home/okay/avadot.py &
python3 /home/okay/main.py &
如果你非常想多花一个进程,你可以从 Python 运行它:
import subprocess

subprocess.run("""
    python3 /home/okay/avadot.py &
    python3 /home/okay/main.py &
    """, shell=True, check=True)
或重构您的代码,以便您可以 import这两个脚本并使用 multiprocessing 运行它们.
回到更简单的建议,您可以从一个 cron 启动两个进程。工作
@reboot sleep 300 && python3 /home/okay/avadot.py & python3 /home/okay/main.py &
但是 cron已经在后台运行,所以你可以把它分成
@reboot sleep 300 && python3 /home/okay/avadot.py
@reboot sleep 300 && python3 /home/okay/main.py
可能会有其他并发症;一个常见的初学者难题是尝试运行需要图形显示或用户交互的工具,这当然不是从 cron 获得的。一点也不。或许见 CronJob not running了解更多信息和故障排除提示。

关于python - 无法使用 Crontab @reboot 运行第二个 py 脚本 - Ubuntu 20.04,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72678934/

相关文章:

python - PBS 集群节点上的多处理

python - 缩放数据时,为什么训练数据集使用 'fit' 和 'transform' ,而测试数据集只使用 'transform' ?

php - 为某些网站切换 nginx php 版本

windows - 如何从 WSL (Ubuntu) 中启动 Windows 上 native 安装的 Atom 或 VSCode?

python - 与 python 中每个确切位置的列表进行比较

python - 是否可以使用多线程使 OpenOpc 读取更快的 OPC 项目?

python - pip 安装 Django

ubuntu - archive.ubuntu.com 稀有文件丢失,解决方法?

python - 使用 pip 在 python 3.5 上安装 uwsgi 时出错

java - 桌面浏览在 Java 中不适用于 Ubuntu