ympdからRaspberryPiをシャットダウンする
ご存知の方もいらっしゃると思いますが、SYMPHONIC-MPDではympdを改造されて使っていました。
その中でとても便利だなっと思ったのが、OSをシャットダウンする機能です。
こんな具合に私も試してみました。
ここまでは、順調だったのです。。。
意外と、と言ってはアレですけど、いちアプリケーションから外部コマンドを発行するのはたやすくとも、OSのシャットダウンは権限が絡んでいて難しいです。shutdownやrebootコマンドはPermissionで蹴られてしまいます。
例えば、
system("systemctl poweroff"); を
system("sudo systemctl poweroff"); くらいにしても
実行できません。
もちろん、その他のコマンドは実行できます。bashでshutdownできるファイルを作って、それをアプリから呼んでもNG。sudoつけて呼んでもNG。bashファイル内にsudoつけてもNG。まあ、当然といえば当然かもしれませんね。セキュリティは頑強で甘くはありません。
そして、ネット検索しても対処方法がなかなか見つかりません。
SYMPHONIC-MPDのパパリウスさん、オモロダイブの@TaroKichijoさんの実現方法までは調べていませんが、かなりやっつけな技を使ってシャットダウンできるようになりました。
これ、やっちゃいけない方法???
/etc/systemd/system/ympd.service というファイルの中身
[Unit]
Description=ympd server daemon
Requires=network.target local-fs.target
[Service]
Environment=MPD_HOST=localhost
Environment=MPD_PORT=6600
Environment=WEB_PORT=80
Environment=YMPD_USER=root
#EnvironmentFile=/etc/default/ympd
ExecStart=/usr/bin/ympd --user $YMPD_USER --webport $WEB_PORT --host $MPD_HOST --port $MPD_PORT
Type=simple
[Install]
WantedBy=multi-user.target
という具合。 ようするに ympdサービス自体をroot実行させています。
よかった、よかった。 ということで一件落着です。
ですが、、、
Raspbian stretch の最新版になってから、wifiをAPモードにすると有線LAN側がイネーブルされなくなったりと良く分からない現象に悩まされています。 まあ、そのうち更新した軽量ディストリビューションを公開しますので、ゆるりと期待ぜずにお待ち下さい。
また、
4.14.xx系のrt-linux化は、なにやらまともに動作しません。
今は諦めて4.14.27でlow latency kernel にしています。 4.14.xx系はPi 3 B+も動くらしいのでこのKernelです。
Pi 3、Pi 2、Pi Zero/wにて動作可能な環境で構築中です。今回はsabreberry32も対応します。
Pi Zeroにsabreberry32を付けると、なんともいえない見た目になってしまいますね。でも、この角度だとLEDが3色見えて綺麗です。
fdk-aac-0.1.6、 ffmpeg-3.4.2、mpd-0.20.18を入れていて、そちらはイイ感じです。
※2 上の改造版ympdのソースコードをここに置いておきます。 興味のある方は、テキトウに焼くなり煮るなりして使って下さい。 ympdをコンパイルして導入する方法はこちらを参考にどうぞ。
※3 そうそう、pythonスクリプトからOSをシャットダウンするのは簡単。commands.getoutput('shutdown -h now') でOK。特に悩んだ憶えはありませんでした。
にほんブログ村
ブログランキングに参加中です。 めざせ1位!
もしよろしければ「ぽちっと」お願いします。
« 秋月電子のオペアンプDUAL-DIP化基板について | トップページ | M3 タッピングを電動ドリルで一発!? »
「Raspberry Pi」カテゴリの記事
- ympdからI2S-DACを選択する(2018.04.23)
- ympdからRaspberryPiをシャットダウンする(2018.04.14)
- RaspberryPi 3 B+ が登場(2018.03.18)
- 秋の夜長の Raspberry Pi 3 カーネル・セルフ・ビルド(2016.09.22)
- RaspberryPiに最新のRT-Linuxを入れる方法(2018.02.10)
コメント
トラックバック
この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/587107/66610643
この記事へのトラックバック一覧です: ympdからRaspberryPiをシャットダウンする:
« 秋月電子のオペアンプDUAL-DIP化基板について | トップページ | M3 タッピングを電動ドリルで一発!? »
low latency kernelにfdk-aacとは、リリースが楽しみです。
投稿: silverbbs | 2018年4月14日 (土) 21時40分
どうも、キチジョータローです。まさかたかじんさんのHPに登場するとは過去には思っていもみませんでした、、、恐縮です。
おそらく、パパリウスさんもVolumioもたかじんさんと同じ方法でWEB-UIをroot権限で起動するようにしています。なので、Update(ファイル更新)とかシャットダウン&再起動を自由にUIから実行できるようになってます。
私は長年のシステム屋の感覚が抜けない事もあって(笑)、rootでUIを起動せずにシャットダウンを実現する方法を探した結果、policykit-1というDebianの特権管理パッケージを導入して、一般ユーザーでもシャットダウンと再起動ができるようにいじってます。
(https://winaero.com/blog/how-to-enable-shutdown-and-reboot-for-a-normal-user-in-debian-jessie/)
ご参考になれば。
※というか、最新版のRaspbian、私はまだいじれていないのですが、また挙動がおかしいのですね、、、
投稿: TaroKichijo | 2018年4月14日 (土) 22時01分
silverbbsさん
本当は3月末に出そうと思っていたのですが、まったくうまく行きませんでした。 もうしばらくお待ち下さい。 volumioやMoodeよりもiTunesストアで購入した音源がたのしく聞けます。
TaroKichijoさん
なるほど。volumioなどもやっぱりroot権限なのですか。 私も、UIがrootというのは嫌だなと思ったのですが、利便性とセキュリティを天秤にかけると利便性をとった方がメリットが多いという結論にいたってしまいました。
policykit-1 は全く知りませんでした。 情報ありがとうございます。
こんなのがあるのですね。 素晴らしいです。
投稿: たかじん | 2018年4月15日 (日) 08時56分
こんにちは、オーシャンです
ご存知かもしれませんが、アップルがダウンロード販売を辞める様です
時期については、まだ決定していません
http://fnmnl.tv/2018/03/27/50071?articleview=more
iPodも辞めるのでしょうかね
投稿: オーシャン | 2018年4月15日 (日) 12時01分
オーシャンさん
それも時代のながれですね。 音質よりも使勝手を優先してきた録音メディアの変化は仕方ないのかもしれません。
LP -> CD -> MP3・AAC -> ストリーミング
となるんですね。 ネットに接続していないと聞けないというのがネックとも思いますが、一部のマニアではなく大勢の一般人がそれを選択してきた結果ですかね。
また、配信している会社が、継続的に売上げを確保しやすいという売る側のメリットもあるのだと思います。
投稿: たかじん | 2018年4月18日 (水) 20時21分