(1)
C++ に固執する特別な理由がない限り、私はもっと簡単な方法でそれを行います。基本的なシェル スクリプトは、cplay
スクリプト ( https://wiki.archlinux.org/index.php/Cmus#Remote_Control )のようなもので、完全に機能します。
$ ps h -C cmus || cmus
Cmus は実際のバックグラウンド サービスではないため、たとえば、ncurses GUI なしでは起動できません。これは、screen セッションで実行している場合に最適です。
$ screen -rD cmus || screen -dmS 'cmus' /usr/bin/cmus
このコマンドを使用すると、screen セッション内で常に cmus セッションが実行されます。ターミナルを閉じても、サービスはバックラウンドで実行され続けます。このコマンドを .bashrc にエイリアスとして追加するだけで、いつでもプレーヤーに簡単にアクセスできます
$ alias mycmus='screen -rD cmus || screen -dmS 'cmus' /usr/bin/cmus'
実行されていない場合は cmus+screen セッションを開始し、そうでない場合はセッションを開きます。「Ctrl+a d」はウィンドウを切り離します。
それらをまとめて質問に答えます(シェルスクリプトで):
次の行をファイルに追加します。例: " mycplayer.sh
" ( を忘れずにPATHchmod +x mycplayer.sh
に追加してください)
#!/bin/sh
cmus-remote -Q > /dev/null || screen -dmS 'cmus' /usr/bin/cmus
cmus-remote $1
最初の行は実行中の cmus インスタンスがあることを確認し (バックグラウンドで screen を使用)、2 行目はリモート コマンドを実行します。
使用法:
$ mycplayer.sh -u start/stop the player
$ mycplayer.sh -n next in the playlist
etc.
(2) C++の場合
(3)cmus
がネットワーク サービスであり、 で開始されている場合--listen host[:port]
、リモート ボックスでサービスを開始するには ssh が必要です。上記の画面コマンドを参照してください。
お役に立てれば。