2014-01-09 3 views
1

Всякий раз, когда я хочу, чтобы остановить мой MPD сервер работает в моем RaspBMC, набрав:не удалось остановить MPD службы (Нет/USR/бен/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, поэтому у него не должно быть проблем с разрешениями, не должно?

Что случилось с этой конфигурацией? Что я должен изменить, чтобы сделать сервис прекрасным, используя служебную команду?

ответ

1

Я, наконец, нашел его! Проблема заключается в путь, указанный в файле Pid в mpd.conf является

pid_file "~/.mpd/pid"

Это, кажется, не работает должным образом при остановке его от service команды. На данный момент я изменил его на

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

и работает нормально, но как можно скорее, я перееду его /var/run/mpd/, как это, кажется, правильное место, чтобы быть в.

0

Да, это может быть проблема с разрешением.

  1. если вы просто хотите, чтобы убить службу, пожалуйста, попробуйте,

    "pidof MPD" или "пс Окс | Grep MPD"

    "Суда убить -SIGTERM $ Pid"

    или более сильный сигнал, «Судо убийство - SIGKILL $ PID»

обычно эти сигналы используются при попытке убить процесс. SIGTERM отправит сигнал завершения для обработки, который близок к тому, чтобы убить процесс безопасно, но SIGKILL является более мощным сигналом

Но в вашем случае вы можете попробовать это, если разрешения не являются проблемой.

+0

Этот будет работать точно, но я действительно не хочу устранять это, убивая процесс каждый раз, когда я хочу перезапустить службу.Я действительно хочу знать, почему «start-stop-daemon» терпит неудачу и решает его, поэтому я могу, наконец, использовать команду 'service'. –