web-dev-qa-db-ja.com

LinuxMintでローカル構成を使用してmpdを実行する

Linux Mint(Cinnamon)でローカルログオンユーザーとして実行するようにmpdデーモンを設定しようとしています。次のフォルダ構造を設定しました。

$ cp /usr/share/doc/mpd/mpdconf.example ~/.config/mpd/mpd.conf
$ mkdir ~/.config/mpd/playlists
$ touch ~/.config/mpd/{database,pid,state,log,sticker.sql}

上記を使用するように~/.config/mpd/mpd.confを編集し、$ mpd ~/.config/mpd/mpd.confを正常に実行しました。私が設定した設定ファイルの抜粋に従います:

music_directory       "~/Music"
playlist_directory    "~/.config/mpd/playlists"
db_file               "~/.config/mpd/database"
log_file              "~/.config/mpd/log"
pid_file              "~/.config/mpd/pid"
state_file            "~/.config/mpd/state"
sticker_file          "~/.config/mpd/sticker.sql"
user                  "[my_username]"

問題は、Cinnamonの[スタートアップアプリケーション]パネルからmpdを無効にしても、再起動するたびに、mpdがユーザー設定ファイルの使用を頑固に拒否し、デフォルトの/etc/mpd.confに戻ることです。

起動するたびに、suとしてターミナルを開き、mpd --killを発行する必要があります。その後、通常のユーザーとして戻って、ようやくmpdを起動し、通常どおりに使用できるようになりました。

~$ su
password:
# mpd --kill
# exit
exit
~$ mpd
server_socket: bind to '0.0.0.0:6600' failed: Address already in use (continuing anyway, because binding to '[::]:6600' succeeded)

今だけ私はmpdを普通に使うことができます。 再起動のたびにmpdにローカル構成を使用させ、この問題をすべて回避するにはどうすればよいですか?

1
A Dwarf

mpdがシステムサービスとして実行されているようです。 service mpd statusを実行して、それが当てはまるかどうかを確認してください。実行中の場合は、service mpd stop && service mpd disableでオフにします。 (注:以前と同様に、これらのコマンドをrootとして実行するか、suをrootとして実行する必要がある場合があります。)

これがユーザー構成を読み取らない理由は、ログインする前に起動時に実行されるシステムサービスです。これらのサービスは通常、rootとして実行されます。これを修正するには、システムサービスを無効にして、ユーザーレベルのデーモンと競合しないようにする必要があります。次に、ログイン時に自動的に実行されるようにmpdを設定できます。

起動時にユーザーとしてmpdを実行するには、~/.profileに追加します。このスクリプトは、ログインするたびに自動的に実行されます。

2
dangerginger