使用 crontab 播放蜂鸣声时出现问题

使用 crontab 播放蜂鸣声时出现问题

我正在尝试创造一些像手表一样的东西。嘟嘟的声音表明一个小时已经过去。

所以我打开了 crontab(sudo crontab -e) 并写了这一行(有五个星号仅供测试):

* * * * * /usr/bin/mplayer /tones/beep.wav > /home/user/cronlogs/cron.log

但蜂鸣声不播放。我在终端中手动测试了它,蜂鸣声正常播放。

谢谢。

  • 保罗

答案1

步骤1

xuser@mbs:~$ env|grep -i runt
XDG_RUNTIME_DIR=/run/user/1000

第2步创建文件 play.sh (记住 chmod)

#!/bin/bash
export XDG_RUNTIME_DIR=/run/user/1000
/usr/bin/mpg123 $1

步骤3 crontab -e

хх * * * * /home/xuser/bin/play.sh /home/xuser/Музыка/demo_moya_vesna.mp3

步骤4

$%)) ata-ta %:) enjoy

答案2

你可能使用pulseaudio...

因此,您应该使用play而不是aplay.

尝试:

* * * * * /usr/bin/play /tones/beep.wav > /home/user/cronlogs/cron.log

答案3

我有一个使用 espeak 说话的时钟。

audio如果您将应该播放声音的用户 ID 添加到音频组(在文件中以 开头的行的末尾/etc/group),这可能对您的情况有所帮助。

root如果您希望它通过 播放,请添加sudo crontab -e。 (这仅对我使用常规用户 ID 是必要的(不适用于root),但这在 Linux 发行版之间可能有所不同。)

答案4

汤姆·亨特是对的,问题在于环境。我用cas并使用aplay。

在你的 crontab 文件中,添加类似的内容

XDG_RUNTIME_DIR=/run/user/1000
* * * * * aplay /tones/beep.wav

如果您的用户 ID 恰好不同,请将上面的 1000 替换为id -u.每分钟将发出一次蜂鸣声。对于最初的目标,每小时发出一次蜂鸣声,将第一个替换*0

相关内容