• 締切済み

CentOS7でログオフ時に音源を鳴らす事は可能で

CentOS7でログオフ時に音源を鳴らす事は可能ですか? 下記のようなスクリプトを作成し、コマンドから実行すると音源は鳴ります。 <File1.sh> #!/bin/sh # 音源オン amixer sset Master on # 音量100% amixer sset Master 100% # 音源起動 aplay /root/音楽/test.wav <File1.sh> これをcronから呼び出しても鳴ります。 端末放置でパスワード要求状態になっていても鳴ります。 ロックしていても鳴ります。 しかし、ログアウトした状態では鳴りません。 ログアウトした状態でもクーロンからスクリプトは起動します。 ファイルを編集するスクリプトなどは動いています。 でも、音は鳴りません。 ログアウトした状態で音源を流す事は不可能ですか?

みんなの回答

回答No.3

シェルに記述したいずれかのコマンドで止まっているか、エラーしてのかも。 cronのそのシェル実行の定義で、 標準出力と標準エラーをファイルに 書きだすようにして原因を調べてみてはどうでしょう。

回答No.2

言われているログイン/ログアウトというのは、単にtelnetやsshやconsolからの テキストログインということではなくて、GUIでのログインのことではないでしょうか? CentOS7で 音を鳴らした経験がないので、あくまでも想像なのですが、 X11でのディスプレイマネージャーが、マルチメディアデバイス(マウスとかサウンドとか)を操作する権限をログインしたユーザーに許可しているけど、 ログアウトすると、それが切れるために音だ出せない という現象なのかもしれません。 もしこれであるなら、cronの実行ユーザーをrootにしてしまえば 解決しそうに思います。 もしくは /dev/snd/*の グループがaudioになっているのなら cron実行するユーザーに GIDとしてaudioを追加するとか。

linuxorfe
質問者

お礼

有難うございます。 >言われているログイン/ログアウトというのは~GUIでのログインのことではないでしょうか? その通りです。 付け加えて、スタンドアローンな利用だと思って頂いて構いません。 >cronの実行ユーザーをrootにしてしまえば 解決しそうに思います。 rootでログインして、 crontab -e そこに書き込みました。 しかし、それでは音は出ません。

回答No.1

>ログアウトした状態で音源を流す事は不可能ですか? 「音源」は「コンソール入出力(stdinやstroutなど)」と同じ扱いになっている筈です。 >これをcronから呼び出しても鳴ります。 >端末放置でパスワード要求状態になっていても鳴ります。 >ロックしていても鳴ります。 上記のいずれの場合も、実行しているスクリプトが使用可能な「コンソール入出力」が存在しています。 >しかし、ログアウトした状態では鳴りません。 ログアウトされた状態のスクリプトには、使用可能な「コンソール入出力」が存在していません。スクリプトでechoコマンドでstdoutに何か出力しても、何も表示されないのと同じです。 >ログアウトした状態でもクーロンからスクリプトは起動します。 ログアウトした状態では「使用可能なコンソール入出力がない」だけで、キーボード入力や、画面表示をしないスクリプトは動作します。 >ファイルを編集するスクリプトなどは動いています。 ログアウトした状態では「使用可能なコンソール入出力がない」だけで、それ以外のファイル入出力は可能です。何故なら「ログアウト中でも、ファイルのオープン、ファイル入出力、ファイルのクローズは可能」だからです。 >でも、音は鳴りません。 ログアウト状態ではコンソール入出力が出来ないのと同様に、音源に出力が出来ないので、音は鳴りません。

linuxorfe
質問者

お礼

有難うございます。 出来なさそうですね。

関連するQ&A