Linux 无法停止mpd服务(未发现/usr/bin/mpd正在运行;未发现任何已终止)

Linux 无法停止mpd服务(未发现/usr/bin/mpd正在运行;未发现任何已终止),linux,service,raspberry-pi,pid,start-stop-daemon,Linux,Service,Raspberry Pi,Pid,Start Stop Daemon,每当我想通过键入以下命令来停止在RaspBMC中运行的mpd服务器时: service mpd stop 控制台显示典型的[ok]消息: [ ok ] Stopping Music Player Daemon: mpd. 但是服务并没有真正停止(进程一直在运行)。我在服务脚本中进行了深入搜索,找到了启动停止守护进程的调用: start-stop-daemon --stop --quiet --oknodo --retry 5 --pidfile ~/.mpd/pid --exec /usr/

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

service mpd stop
控制台显示典型的
[ok]
消息:

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

start-stop-daemon --stop --quiet --oknodo --retry 5 --pidfile ~/.mpd/pid --exec /usr/bin/mpd
如果在控制台中执行此命令(不带
--quiet
选项),则会收到以下消息:

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


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

是的,这可能是权限问题

  • 如果您只是想终止服务,请尝试

    “pidof mpd”或“ps aux|grep mpd”

    “sudo kill-SIGTERM$pid”

    或者更强烈的信号“sudo kill-SIGKILL$pid”

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


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

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

    pid\u文件“~/.mpd/pid”

    服务
    命令停止时,这似乎无法正常工作。 现在我把它换了

    pid\u文件/home/MyUserName/.mpd/pid“


    工作正常,但我会尽快将其移动到
    /var/run/mpd/
    ,因为它似乎是正确的位置。

    这肯定会起作用,但我不想每次想重新启动服务时都通过停止进程来排除故障。我真正想知道的是
    start-stop守护进程
    失败的原因并解决它,这样我才能最终使用
    service
    命令。这仍然会为我生成Mpd:(