我想在 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
将是脚本的第一个参数,start
或stop
)。
答案2
解决方案是创建一个空白的 txt 文件,其路径在 aria2 配置中指定:输入文件。
Aria2 无法处理指定了某个文件路径但不存在的情况。因此它不会启动。但也不会显示任何错误,这相当棘手。