2

次のように入力して、RaspBMCで実行されているmpdサーバーを停止したいときはいつでも:

service mpd stop

コンソールには、典型的な[ ok ]メッセージが表示されます。

[ ok ] Stopping Music Player Daemon: mpd.

しかし、サービスはまったく停止しません (プロセスは実行され続けます)。サービス スクリプトを詳しく検索したところ、start-stop-daemon への呼び出しが見つかりました。

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) の両方を確認しましたが、それらは正しいものです。/etc/init.d/mpdコマンドをスーパーユーザーとして(sudoを使用して)実行するとこのエラーが消えることに気付いたので、権限の問題のようですが、スクリプトが実行中のプロセスを検出できない理由がよくわかりません...常に呼び出されますsudo を使用するため、権限の問題は発生しないはずです。

この構成の何が問題になっていますか? service コマンドを使用してサービスを正しく停止するには、何を変更すればよいですか?

4

2 に答える 2

3

やっと見つけた!問題は、mpd.conf で pid ファイルに指定されたパスが

pid_file "~/.mpd/pid"

serviceこれは、コマンドから停止すると正しく機能しないようです。とりあえず交換したのは

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

/var/run/mpd/正常に動作しますが、適切な場所にあると思われるため、できるだけ早く移動します。

于 2014-01-09T17:22:58.500 に答える
0

はい、許可の問題である可能性があります。

  1. サービスを強制終了したい場合は、試してみてください。

    「pidof mpd」または「ps aux | grep mpd」

    「sudo kill -SIGTERM $pid」

    またはより強いシグナル、「sudo kill - SIGKILL $pid」

通常、これらのシグナルは、プロセスを強制終了しようとするときに使用されます。SIGTERM は、プロセスを安全に強制終了するのに近い終了シグナルをプロセスに送信しますが、SIGKILL はより強力なシグナルです。

ただし、あなたの場合、権限が問題でない場合はこれを試すことができます。

于 2014-01-09T12:48:10.270 に答える