当前位置: 首页 > 知识库问答 >
问题:

在raspbian上使用systemd重新启动时自动运行python文件

唐利
2023-03-14

我正在尝试使用systemd在重新启动时自动运行python文件。我尝试使用systemd的原因是,我的python文件要求网络在该时间点连接并可用,并且要求/home/pi目录准备好使用,并且NTP已更新系统时间以继续。但是,在尝试启动脚本时,我收到了以下错误:

systemctl start mysript.service

启动myscript.service失败:单元myscript.service加载失败:无效参数。有关详细信息,请参阅系统日志和'systemctl statusmyscript.service'。

systemctl status myscript.service

我的脚本。已加载服务:错误(原因:参数无效)活动不活动(无效)

我的脚本。服务缺少启动设置。拒绝。

以下是myscript。服务:

[unit]
Description=MyPythonFile
After=multi-user.target

[service]
Type=idle
ExecStart=/usr/bin/python3 /home/pi/mypythonfile/file.py

[Install]
WantedBy=multi-user.target

有人知道我为什么会收到这个错误吗?

[[编辑]]引用了这篇文章:https://www.raspberrypi-spy.co.uk/2015/10/how-to-autorun-a-python-script-on-boot-using-systemd/

现在可以加载该服务,但是我收到了一个错误,因为我的python程序正在使用Tkinter。

_tkinter.TclError: couldn't connect to display "0.0"
myscript.service: main process exited, code=exited, status=1/FAILURE
Unit myscript.service entered failed state.

我能做些什么来修复这个错误?

共有1个答案

丌官浩旷
2023-03-14

以下帖子:https://www.raspberrypi-spy.co.uk/2015/10/how-to-autorun-a-python-script-on-boot-using-systemd/

似乎[单位]和[服务]应该有一个资本:所以现在它们变成了-[单位]和[服务]。

这可能是不可逆转的,但可能会改变

/usr/bin/python3

/usr/bin/python

编辑

“我会尝试用文本编辑器打开./.config/lxsession/LXDE pi/autostart,并在python脚本中添加一个前导“@”python HomeV3.py。您可能需要脚本的路径。”-归功于冲浪运动-https://www.raspberrypi.org/forums/viewtopic.php?f=29

希望这有帮助!

 类似资料:
  • 本文向大家介绍在Windows启动时自动运行Python脚本?,包括了在Windows启动时自动运行Python脚本?的使用技巧和注意事项,需要的朋友参考一下 将Python脚本添加到Windows启动时,基本上表示Python脚本将在Windows启动时运行。这可以通过两步过程来完成- 步骤#1:在Windows启动文件夹中添加或添加脚本 在启动Windows后,它会执行(相当于双击)其启动文件

  • 我知道以前也有人问过类似的问题。但是不知何故,我无法让我的工作成功。以下是我已经尝试过的步骤。 > 我创建了一个bat文件为并放入启动文件夹中。它适用于当前用户。这没有帮助,因为我想在所有用户登录PC后为他们运行此文件。 我以HKEY\U local\U machine的身份创建了关键价值 所以我有windows 10 64位计算机和需要放在这些计算机上的jar文件。任何用户登录后,都需要运行ja

  • 问题内容: 您如何使python程序自动重新启动?因此,假设有一个非常简单的程序,例如: 现在,在Python Shell中,您将必须按“运行”按钮,然后按“运行模块(F5)”,或者仅按键盘上的“ f5”按钮。那是您第一次运行它。程序结束后,您将返回到“ Cheese.py”文件,然后按“ f5”再次运行该程序。大家和我在一起吗?好的,所以我的问题是,如何使程序自动重新启动,而无需手动执行? 问题

  • 我在运行Ubuntu18.04的单个实例上安装了ELK。除elasticsearch外,所有服务(logstash、kibana、metricbeat)都将在重新启动时自动启动。重新启动实例后,我必须发出命令。 我尝试了这个命令,但没有帮助。 需要做些什么才能让elastic自动重启?

  • 我有以下系统脚本: 运行命令:systemctl start/stop hub工作正常。我还使用systemctl启用集线器创建了符号链接。为什么我的服务在我重新启动整个笔记本电脑后没有启动?我遵循了docker指南,以便Docker在重新启动时启动,但由于某种原因我的容器没有启动。我的脚本中缺少一个字段吗? 我正在使用ExecStart,“/home/hub/hub.sh”脚本的命令是: 重新启

  • 我很久以前做了一些自定义systemd服务,都有相同的配置(当然ExecStart除外) 这种配置已经运行了很多年,从18.04版LTS开始,我已经启动并运行了ubuntu,但是现在看起来有些systemd服务根本没有启动,配置如下(myapp.service): 服务已启用: 如果在重新启动后执行“systemctl status myapp”: 如果我在重新启动后执行“Journal alct