我的主文件夹 (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