如何让 Debian 在启动时运行 m python 脚本?

如何让 Debian 在启动时运行 m python 脚本?

我的主文件夹 (pi) 中有此脚本:server.py。

我怎样才能让 Debian 在启动时运行这个脚本,这样我就不需要登录并手动运行它?

答案1

在第一次写这个答案时,Debian(默认安装)在二进制文件中使用了“SysV”rc 脚本start-stop-daemon。文件中有一个示例脚本/etc/init.d/skeleton,可以将其作为 rc 脚本的基础。一旦拥有了 rc 脚本并将其标记为可执行文件,update-rc.d就可以使用该命令将其添加到所需的运行级别。

随着岁月的流逝,事情发生了变化。特别是 2014 年,有两件事发生了变化:

  • /etc/init.d/skeleton脚本被 (5) 手册页中的示例脚本取代init-d-script,该脚本于 2018 年晚些时候成为仅有的/etc/init.d/skeleton完全废除时可用的基础。框架的内容也发生了显着的变化,不再需要人们编写调用start-stop-daemon,甚至不需要编写比某些变量赋值更多的内容。 (看https://unix.stackexchange.com/a/480897/5132.)
  • 安装的默认值更改为 systemd,并且必须编写 systemd 服务单元文件(不必标记为可执行)并使用systemctl enable.但没有示例单元文件。 (看https://github.com/systemd/systemd/issues/10572.)

因此,从 2018 年开始,您需要编写一个 systemd 服务单元文件(至少)在设置中命名您的脚本(使用绝对路径名)ExecStart。尽管问题没有指定某种方式,您可能希望使用一种User设置来让脚本在您的用户帐户而不是超级用户的支持下运行。你呢可能再次取决于问题中未指定的内容,需要协调调用脚本的相对顺序以及主目录(如果单独安装)的(自动)安装。

答案2

投入。su -c 'SCRIPT' USER/etc/rc.local

相关内容