如何在 Debian 无头服务器(Raspberry Pi)上启动时启动服务?

如何在 Debian 无头服务器(Raspberry Pi)上启动时启动服务?

我想在 Raspberry Pi 无头服务器启动时将 aria2 作为守护进程启动(无 GUI,仅 SSH 访问)

我创建了一个服务 aria2cRPC启动应用程序(获得以下帮助:http://www.megaleecher.net/Raspberry_Pi_Autostart)它像这样启动应用程序:

sudo aria2c --daemon --enable-rpc --rpc-listen-all

当我从 SSH 控制台启动服务时

sudo service aria2cRPC start

一切都按预期进行。

但是,当我将该服务添加到启动时自动启动时,它却无法启动。

sudo update-rc.d aria2cRPC defaults

我应该更改运行级别吗?我应该使用哪个级别?如何测试服务是否至少在启动时尝试启动?

编辑:当我调查/etc/rcX.d我可以在以下位置查看我的服务:

/etc/rc0.d K01aria2cRPC
/etc/rc1.d K01aria2cRPC
/etc/rc2.d S01aria2cRPC
/etc/rc3.d S01aria2cRPC
/etc/rc4.d S01aria2cRPC
/etc/rc5.d S01aria2cRPC
/etc/rc6.d K01aria2cRPC

这是否意味着该服务应该在没有 X(运行级别 2,3,4)的情况下启动时运行?

答案1

我认为 Raspberry Pi 的默认运行级别是 2,因此默认设置应该没问题。您可以通过调用 来检查是否确实如此who -r

您使用的序列号 ( 01) 太低了。如果服务依赖于具有更高序列号的其他服务,这可能是服务无法启动的充分原因。我建议您使用更高的序列号重试,例如

sudo update-rc.d aria2cRPC defaults 99

删除链接后。

我应该更改运行级别吗?我应该使用哪个级别?

您不必改变运行级别,除非有其他原因。

我如何测试该服务是否至少在启动时尝试启动?

您可以在脚本中添加如下行/etc/init.d/aria2cRPC

echo "`/bin/date` $1" >> /var/tmp/aria-rc.log

它将记录所有脚本调用。($1将是脚本的第一个参数,startstop)。

答案2

解决方案是创建一个空白的 txt 文件,其路径在 aria2 配置中指定:输入文件

Aria2 无法处理指定了某个文件路径但不存在的情况。因此它不会启动。但也不会显示任何错误,这相当棘手。

相关内容