繁体   English   中英

当我尝试通过将命令添加到 /etc/profile 来在 Raspberry Pi 启动时执行它时,为什么我的 Python 脚本在后台运行两次?

[英]Why is my Python script running twice in the background when I try to execute it at startup of my Raspberry Pi by adding the command to /etc/profile?

当我尝试通过将命令添加到 /etc/profile 来在 Raspberry Pi 启动时执行它时,为什么我的 Python 脚本在后台运行两次?

我在文件 /etc/profile 的末尾写了一个命令,用于在我的 Raspberry Pi 启动时运行 Python 脚本,“sudo python /path/filename.py &”,出于某种原因,它每次运行两次. 当我注释掉该行并从命令行手动执行它时,它运行正常。 为什么会发生这种情况,我可以做些什么来防止这种情况发生?

我确实知道它在后台运行了两次,因为在我的代码中我有一个蜂鸣器,它有时发出两次哔哔声,有时发出 3 次哔哔声,它发出 4 次而不是 2 次和 6 次而不是 3 次的蜂鸣声。代码也结束了自相矛盾,显然是因为每个脚本运行都试图同时做其他事情。

提前致谢。

我正在用一种在启动/启动时运行脚本的更好方法来回答我自己的问题。

我不确定为什么会发生这种情况,但我确实了解到使用这种方法在启动时执行脚本是一种不好的做法,最好避免。

我开始改用 Crontab。

这是您需要做的:

crontab -e

这将打开 crontab,然后添加以下行:

@reboot python /文件位置/文件名.py

这将在 Pi 启动后立即执行脚本。

不再运行双脚本!

你有启用VNC吗? 我认为这就是问题所在。 这是给我的。

请参阅此相关讨论:

https://www.raspberrypi.org/forums/viewtopic.php?f=66&t=59285

因此,您可以禁用 VNC,执行 danny 建议的运行级别,创建一个新用户(不同于用于 VNC 的用户)或开始在脚本中执行此类操作:

if [ x"$ALREADY_DONE" == x"" ]; then
    export ALREADY_DONE=yes
    foobar
fi

我的pi似乎只对每个python脚本运行两次,以为我发疯了,所以在一行中创建了一个“ hello world”脚本,运行它运行了两次.....任何人都需要执行两次的任何代码? 在我的pi上运行它,您只需要编写一半的代码

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM