如何让 Python 脚本(包括其依赖项)在 Ubuntu 机器启动时运行?

如何让 Python 脚本(包括其依赖项)在 Ubuntu 机器启动时运行?

好吧,我知道对于单个脚本来说,问题只是将相应的文件放在目录中/etc/rc.local,对吗?但是,如果此脚本依赖于其他文件(即几个脚本和几个文本文件)怎么办?我应该怎么做才能避免使这个文件夹变得混乱?

答案1

如果依靠,你是认真的使用和/或调用他们,那不应该有关系。您只需在 rc.local 文件末尾添加一行作为调用主脚本的命令即可应该可以工作

有一个rc.local 的替代品至少在桌面版本上。您可以使用Startup Applications应用程序将脚本添加到其中。除了 CLI 与 GUI 版本的添加之外,这两种方法的区别在于rc.local 脚本运行为以用户身份启动应用程序


编辑

从评论来看,你的问题变成了更清晰. 看来脚本正在使用相对路径访问依赖项,我猜这不是代码。上述两种方法的工作目录要么是/root//home/<user name/要么是 ,因此依赖项未加载

最简单的解决方法是cd到文件夹在调用 Python 脚本之前。以下任何一种方法都应该有效: -cd /home/..../.../ && python perdc_task.py在上述两种方法中用作命令。 - 如果不起作用,请制作一个脚本(.sh应该可以)来调用上述命令,然后在上述两种方法中调用此脚本。

更优雅的方法是 -cd在 Python 脚本中通过编程确定其路径 - 或者使用上述路径访问依赖项绝对路径


編輯2

Ubuntu 可能已经放弃 rc.local,转而使用暴发户. 尝试使用 upstart 如下这个问题为您工作。

答案2

如果您已cron启用(您应该启用),则有一个特殊@reboot命令会在启动时运行。我不确定这在冷启动时是否有效,但就我所见,它确实有效。

如果它有效,您只需编写一个脚本,将其放在一些干净且有组织的目录中,然后通过调用它cron

看:这里这里

相关内容