• 締切済み

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 そこに書き込みました。 しかし、それでは音は出ません。

  • chie65535
  • ベストアンサー率43% (8524/19375)
回答No.1

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

linuxorfe
質問者

お礼

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

関連するQ&A

  • CentOS7で音量指定でwav実行して戻す

    OS:CentOS7 音量指定でwav実行して、元に戻したいです。 元に戻す事を考慮しなければ以下でイケました。 #!/bin/sh # 音源オン amixer sset Master on # 音量100% amixer sset Master 100% # 音源起動 aplay /root/音楽/test.wav やりたいのは以下です #!/bin/sh # ミュート状況確認 # 音量状況確認 # 音源オン 基がミュートなら amixer sset Master on # 音量100% amixer sset Master 100% # 音源起動 aplay /root/音楽/test.wav # 音源オフ 基がミュートなら amixer sset Master off # 音量戻す amixer sset Master 元の値 可能でしょうか?

  • cronの設定日時について

    現在、サーバー(centos5.6)の定期バックアップの設定をしている最中なのですが、コマンドが設定した日時に起動せず困っております。 ”毎月第一日曜”の02:00にバックアップスクリプトを起動させたいのですが、”毎週日曜”の02:00にバックアップスクリプトが起動します。 cronの設定は以下のとおりです。 #crontab -e 00 02 1-7 * 0 /root/scripts/backup_sda3.sh #cat /root/scripts/backup_sda3.sh #!/bin/bash DATE=`/bin/date +%Y%m%d` BACKUPFILE=/mnt/disk/sda3_$DATE dd if=/dev/sda3 of=$BACKUPFILE #cat /var/log/cron Feb 26 02:00:01 dns crond[31858]: (root) CMD (/root/scripts/backup_sda3.sh) 何か、お知恵をください。

  • 2時間おきに時刻を新規ログに書き込む

    Linuxで2時間おきに時刻を新規のログに書き込みたいのですが、 うまく表示されません。 syslog.confに新しく2時間おきに時刻を書き込むログを加え、 新規ログに Sep 18 07:00:01 tky015 logger: 只今の時刻は 7時00分です Sep 18 08:00:01 tky015 logger: 只今の時刻は 8時00分です Sep 18 09:00:01 tky015 logger: 只今の時刻は 9時00分です Sep 18 10:00:01 tky015 logger: 只今の時刻は 10時00分です Sep 18 11:00:01 tky015 logger: 只今の時刻は 11時00分です という風に表示させたいです。 新規ログをtest.logとし、メッセージの表示はシェルを使用し、以下のようになりました。 ファイル名はtime.shです。 #!/bin/sh MESS='只今の時刻は' DATE1=`date "+%k"`'時' DATE2=`date "+%M"`'分' MESS=$MESS$DATE1$DATE2'です' logger -f /var/log/test.log $MESS 2時間おきに時刻を表示させるためにcronを使い、 * */2 * * * /bin/sh /root/time.sh syslog.confには、 #2時間おきに時間を書き込むログ cron.*         /var/log/test.log というふうにやりましたが、 時刻は/var/log/messagesに書き込まれてしまい、/var/log/test.logには Sep 17 07:00:01 tky015 crond[6480]: (root) CMD (/bin/sh /root/tanaka.sh) Sep 17 08:00:01 tky015 crond[6486]: (root) CMD (/bin/sh /root/tanaka.sh) Sep 17 09:00:02 tky015 crond[6492]: (root) CMD (/bin/sh /root/tanaka.sh) Sep 17 10:00:01 tky015 crond[6499]: (root) CMD (/bin/sh /root/tanaka.sh) Sep 17 11:00:01 tky015 crond[6506]: (root) CMD (/bin/sh /root/tanaka.sh) というふうに書かれてしまいます…。 syslog.confの書き方が間違っているんじゃないのかなと思うのですが、 どうすればいいのかわかりません。 OSはCentOS05です。 初心者ですので分からないこともあるかも知れませんが、 どなたかご教授ください。 よろしくお願いします。

  • CentOS初期設定chkconfig認識不可。

    いつも教えて頂きありがとうございます。 標記の件。 http://centos.server-manual.com/centos5_setup.html に沿って初期設定を行っています。 説明では下記です。 [root@centos ~]# /etc/rc.d/init.d/yum-updatesd stop [root@centos ~]# chkconfig yum-updatesd off [root@centos ~]# yum -y update [root@centos ~]# yum -y install yum-cron [root@centos ~]# /etc/rc.d/init.d/yum-cron start [root@centos ~]# chkconfig yum-cron on [root@centos ~]# chkconfig --list yum-cron ところが実行すると [root@localhost kouzou]# /etc/rc.d/init.d/yum-updatesd stop yum-updates を停止中: [ OK ] [root@localhost kouzou]# chkconfig yum-updatesd off bash: chkconfig: command not found また他の # chkconfig yum-cron on # chkconfig --list yum-cron に関してもbash: chkconfig: command not found が出ます。 これでは前に進めません。 どなたかアドバイスの程、宜しくお願い申し上げます。

  • シェルスクリプトでPHPを実行したい

    シェルスクリプトでPHPを実行したいのですが、うまくできません。 centos5でcrontabに 20 0 * * * /bin/sh /var/www/html/test/test.sh と登録しています。 cronのlogをみたところ Dec 12 00:20:01 localhost crond[19060]: (root) CMD (/bin/sh /var/www/html/test/test.sh) と記録されていてここまでは問題ないように思えます。 test.shの中身は #!/bin/sh cd /var/www/html/test/ php -f daily.php > result exit になっています。 daily.phpが実行されないので、daily.phpに何かおかしなところがあるのかと思い daily.phpを直接ブラウザから起動してみたところ問題なく処理されました。 このような経緯でtest.shの中身が間違っていると思っているのですがどこが間違っているのか分かりません。 どなたかアドバイス頂けると助かります。

  • cron設定で電源のOFFができません。

    cron設定で電源のOFFができません。 cent OS 5.5 で自宅サーバーを立上げ勉強中です。 サーバーの電源を自動で18:00にONにして翌日の7:00にOFFにしたいと思います。 いろいろなホームページを参考にさせていただき、電源のONはパソコンのBIOS設定、OFFは"cron"を使うことできることがわかりました。 電源のONはパソコンのBIOS設定でできましたが、OFFができません。 設定は以下としています。 [root@Linux ~]# vi /etc/crontab CSHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root HOME=/ # run-parts 01 * * * * root run-parts /etc/cron.hourly 02 4 * * * root run-parts /etc/cron.daily 22 4 * * 0 root run-parts /etc/cron.weekly 42 4 1 * * root run-parts /etc/cron.monthly 0 7 * * * shutdown -h now #追加 [root@Linux ~]# /etc/rc.d/init.d/crond restart [root@Linux ~]#chkconfig crond on [root@Linux ~]# chkconfig --list crond crond 0:off 1:off 2:on 3:on 4:on 5:on 6:off [root@Linux ~]# /etc/rc.d/init.d/crond status crond (pid xxx) を実行中... 設定時間になっても電源がOFFになりません。 [root@Linux ~]# shutdown -h now ではOFFにできます。 (cent OS 5.5 をインストールしているパソコンは 富士通 FMV DESKPOWER CE18B 2002 年製です) よろしくお願いします。

  • cronについて

    centos4を使っています。 初期設定?なのかは解らないのですが、root権限で1秒ごとに 下記のcronが登録されていました。 これはどのような意味があるのでしょうか。 /usr/bin/envdir.sh /etc/relay-ctrl /usr/bin/relay-ctrl-age

  • cronでとても困っています どなたかご教授いただけないでしょうか

    cronの設定でpersonユーザーで動くように設定したいのですが、動いてくれません なにか設定がおかしいのでしょうか ↓crontabの内容です # DO NOT EDIT THIS FILE - edit the master and reinstall. # (/tmp/crontab.4208 installed on Thu Jan 25 12:14:20 2007) # (Cron version -- $Id: crontab.c,v 2.13 1994/01/17 03:20:37 vixie Exp $) SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root HOME=/ 15 12 * * * person /home/test/bin/test.sh rootに送られてくるエラーメッセージです /bin/bash: line 1: person : command not found ご教授いただけたら幸いです 何卒宜しくお願いいたします

  • crontabでのシェル自動実行がNG

    いつも参考にさせてもらっています。 linux(Red Hat Enterprise Linux ES release 3 Apache/2.0.46)上でcrontabを設定したいのですが、 現在うまくいっておりません。 まず、autoindex.shというシェルを/home/foo/scripts/ディレクトレィに作成しました。中身は3行からなっていて #!/bin/sh cd /var/www/html/search/index mknmz -a /var/www/html/test です。telnet上でroot権限を使用し、./autoindex.shコマンド発行で正常に動作しました。 そこで、crontabに以下のように # crontab -l 50 11 * * * root /home/foo/scripts/autoindex.sh と設定したところ、 # more /etc/log/cron Sep 27 11:50:01 intra crond[18280]: (root) CMD (root /home/foo/scripts/autoindex.sh ) とcronは決めていた時間(11時50分)に稼動しているようなんですが、mailを見ると # mail -t From root@XXX.com Wed Sep 27 11:50:01 2006 Date: Wed, 27 Sep 2006 11:50:01 +0900 From: root@XXX.com (Cron Daemon) To: root@XXX.com Subject: Cron <root@hoge> root /home/foo/scripts/autoindex.sh X-Cron-Env: <SHELL=/bin/sh> X-Cron-Env: <HOME=/root> X-Cron-Env: <PATH=/usr/bin:/bin> X-Cron-Env: <LOGNAME=root> X-Cron-Env: <USER=root> /bin/sh: line 1: root: command not found と、シェルがこけているようです。 何か解決のヒントがありましたら、ぜひ教えていただけないでしょうか。

  • PHP

    PHPで移動させるのが失敗してます。どうしてですか? /* テンポラリのクーロンの設定をして本番のクーロンに設定をする $cmd = "/usr/bin/sudo chown root:root ".TEMP_PATH; exec($cmd, $output, $return); $cmd = "/usr/bin/sudo cp -f ".CRON_DAILY_ESTAB." ".CRON_DAILY_ESTAB.".bak"; exec($cmd, $output, $return); $cmd = "/usr/bin/sudo mv -f ".TEMP_PATH." ".CRON_DAILY_ESTAB; exec($cmd, $output, $return);

    • ベストアンサー
    • PHP