首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法停止mpd服务(No /usr/bin/mpd发现正在运行;无死亡)

无法停止mpd服务(No /usr/bin/mpd发现正在运行;无死亡)
EN

Stack Overflow用户
提问于 2014-01-09 11:09:06
回答 2查看 6.4K关注 0票数 2

每当我想通过键入以下命令来停止在RaspBMC中运行mpd服务器时:

代码语言:javascript
复制
service mpd stop

控制台显示了典型的[ ok ]消息:

代码语言:javascript
复制
[ ok ] Stopping Music Player Daemon: mpd.

但是服务并没有真正停止(进程一直在运行)。我在服务脚本中进行了深入搜索,并找到了启动停止守护进程的调用:

代码语言:javascript
复制
start-stop-daemon --stop --quiet --oknodo --retry 5 --pidfile ~/.mpd/pid --exec /usr/bin/mpd

如果我在控制台中执行此命令(没有--quiet选项),将得到以下消息:

代码语言:javascript
复制
No /usr/bin/mpd found running; none killed.

但是这个过程真的在进行中。我检查了pid文件和exec文件(/usr/bin/mpd),它们都是正确的。我注意到这个错误在以超级用户的身份运行时消失了(使用sudo),因此它似乎是一个权限问题,但我真的不明白为什么/etc/init.d/mpd脚本无法检测正在运行的进程.它总是与sudo一起调用,所以不应该有权限问题,不是吗?

这个配置有什么问题?要使用service命令使服务停止正确,我应该更改什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-01-09 17:22:58

我终于找到了!问题是,为mpd.conf中的pid文件指定的路径是

pid_file "~/.mpd/pid"

当从service命令中停止它时,它似乎不能正常工作。现在我把它换成

pid_file "/home/MyUserName/.mpd/pid"

而且工作正常,但我会尽快将它移到/var/run/mpd/,因为它似乎是合适的位置。

票数 3
EN

Stack Overflow用户

发布于 2014-01-09 12:48:10

是的,这可能是许可问题。

  1. 如果你只想杀了服务,那就试试, "pidof mpd“或"ps aux grep mpd” "sudo -SIGTERM $pid“ 或者更强的信号,"sudo杀伤- SIGKILL $pid“

通常,这些信号是在试图杀死进程时使用的。SIGTERM将发送终止信号到进程,接近安全地杀死进程,但是SIGKILL是更强的信号。

但在您的情况下,如果权限不是问题,则可以尝试此方法。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21018491

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档