如何让 Upstart 启动我的 Mediatomb 服务?

如何让 Upstart 启动我的 Mediatomb 服务?

我一直在努力尝试让我的 Mediatomb 服务器在 Upstart 运行级别 2 上自动启动。我搞不懂。我想 Upstart 对我来说还是个新东西,我不太理解。我甚至阅读整个手册并且它很模糊并且从未提及任何事物内部运作的方式。

我显然可以使用这个命令运行 mediatomb,因此让它运行不是我的问题:

sudo mediatomb --config /etc/mediatomb/config.xml

或者

mediatomb --config ~/.mediatomb/config.xml

我知道 Upstart 应该以超级用户身份启动服务,但是以普通用户身份运行 Upstart 命令时会发生什么?权限会升级吗?我似乎无法弄清楚。

这些命令不起作用:

service mediatomb start
/etc/init.d/mediatomb start 
sudo initctl start mediatomb (says it started but not really)

对我来说,这一切似乎都是某种权限问题,但我对 Upstart 了解不够,无法弄清楚这一点。非常令人沮丧。

me@linux:/etc/init$ start mediatomb
start: Rejected send message, 1 matched rules; type="method_call", sender=":1.58"
(uid=1000 pid=2665 comm="start mediatomb ") interface="com.ubuntu.Upstart0_6.Job"
member="Start" error name="(unset)" requested_reply="0"
destination="com.ubuntu.Upstart" (uid=0 pid=1 comm="/sbin/init")

答案1

使用 Xubuntu 重新安装系统。这次 Mediatomb 自动启动,但端口 47152 仅在本地主机上可见。也可以使用 重新启动该服务sudo service mediatomb start。我的外部媒体设备看不到 mediatomb。

我学会了:

  1. Mediatomb 将数据库放在 /var/lib/mediatomb.db 中,由 mediatomb 用户拥有
  2. config.xml 由 /etc/mediatomb/config.xml 中的 root 拥有
  3. 网络文件位于 /usr/share/mediatomb 并归 root 所有。
  4. /etc/init 目录包含 Upstart 脚本,我没有对其进行任何修改。
  5. /etc/init.d 目录包含旧的、未使用的 init 脚本。
  6. 我共享的媒体磁盘由root自动挂载,并且具有777权限。

此时我认为这可能与我的 Xubuntu 是 64 位系统有关,并且由于某种原因,监听器绑定到本地主机而不是我的外部 IP?


更新:最终发现是我的 config.xml 中的配置错误导致服务器认为没有任何文件可供使用。我的库都是 .avi 文件,而我在 config.xml 中错误配置了 .avi 配置文件,因此无法渲染任何内容。

相关内容