2014-01-09 8 views
1

는 :는 MPD 서비스를 중지 할 수 없습니다 (단,는/usr/빈/MPD는 실행중인 발견, 아무도 살해) I 입력하여 내 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 

I합니다 (--quiet 옵션을 사용하지 않고) 콘솔에서이 명령을 실행하면 나는 다음과 같은 메시지가 : 나는 시작 - 중지 - 데몬에 대한 호출을 서비스 스크립트에 깊은 검색을 만들어 발견했습니다

No /usr/bin/mpd found running; none killed. 

하지만 프로세스가 실제로 실행 중입니다. 나는 pid 파일과 exec 파일 (/usr/bin/mpd)을 모두 검사했는데 그것들이 맞다. 수퍼 유저 (sudo 사용)로 명령을 실행할 때이 오류가 사라지는 것을 보았습니다. 사용 권한 문제 인 것 같습니다. 그러나 /etc/init.d/mpd 스크립트가 실행중인 프로세스를 감지 할 수없는 이유를 항상 이해하지 못합니다 ... 항상 그렇습니다. sudo로 불려지므로 권한 문제가 없어야합니다. 그렇지 않아야합니까?

이 구성에는 어떤 문제가 있습니까? 서비스 명령을 사용하여 서비스를 올바르게 중지하려면 어떻게해야합니까?

답변

1

마침내 발견했습니다. 문제는 mpd.conf에서 PID 파일에 대해 지정된 경로입니다이 service 명령에서 정지 할 때 제대로 작동하지 않을 것

pid_file "~/.mpd/pid"

입니다. 순간 나는

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

그것을 변경하고 잘 작동하지만이 될 수있는 권리 장소로 보인다 가능한 한 빨리, 나는 /var/run/mpd/로 이동합니다.

0

예 권한 문제 일 수 있습니다.

  1. 그냥 시도하십시오 다음 서비스를 죽이고 싶은 경우에, 또는 "추신 보조 | 그렙 MPD" "MPD 이것들을 pidof"

    "sudo를 죽일 -SIGTERM의 $의 PID"

    이상의 강한 신호, "sudo를 죽일 - SIGKILL의 $의 PID"을하려고 할 때 일반적으로 이러한 신호가 사용되는

그 과정을 끝내라. SIGTERM은 프로세스를 안전하게 종료시키기 위해 근처에있는 프로세스에 종료 신호를 보내지 만 SIGKILL은 더 강력한 신호입니다.

그러나 사용 권한이 문제가 아닌 경우이 방법을 시도 할 수 있습니다.

+0

이를 확실히 작동하지만 서비스를 다시 시작할 때마다 프로세스를 강제 종료하여 문제를 해결하고 싶지는 않습니다.내가 정말로 원했던 것은'start-stop-daemon'이 실패한 이유를 알고 그것을 해결하는 것입니다. 그래서'service' 명령을 마침내 사용할 수 있습니다. –