heemayl forneceu a resposta correta para começar crona correr na parte superior e inferior da hora. Obrigado novamente! No entanto, como outros usuários descobriram, cronjobnão é possível reproduzir arquivos de som por padrão:
Configurando cronpara reproduzir sons
Para cronreproduzir arquivos de som, ele precisa de exportuma variável de ambiente:
export XDG_RUNTIME_DIR="/run/user/1000"
Uma vez feito isso no seu script, os sons serão reproduzidos.
Como apontado por outra resposta seu ID de usuário nem sempre pode ser 1000. Para encontrar seu ID de usuário, use:
$ id
uid=1000(rick) gid=1000(rick) groups=1000(rick),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),113(lpadmin),128(sambashare)
Se o seu ID do usuário não for 1000, altere o script para o seu ID.
Configure cronpara executar a parte superior da hora e a parte inferior da hora
crontab -e configuração (apenas nas últimas 5 linhas):
# For more information see the manual pages of crontab(5) and cron(8)
#
# m h dom mon dow command
00 * * * * /usr/local/bin/top-of-hour-chime >/dev/null
00,30 * * * * /usr/local/bin/bottom-of-hour-chime >/dev/null
A maioria dos usuários configuram cronpara usar onano editor. Use estas teclas de controle nanopara salvar seu trabalho:
- Adicione as duas últimas linhas acima e use Ctrl+ Opara escrever O ut (salvar) o arquivo.
- Um
/tmp...nome de arquivo é apresentado, mas não se preocupe, basta pressionar Enter.
- Agora use Ctrl+ Xpara e X o
nanoeditor.
O bottom-of-hour-chimescript é executado na parte superior da hora também, mas tudo bem, pois é curto e agradável.
Se você não tiver o >/dev/nullno final das linhas, crontente enviar um email com a saída do comando. Se você não tiver o servidor de email configurado, uma mensagem de erro será exibida no seu /var/log/syslogarquivo:
Oct 02 10:00:07 dell CRON[21259]: (CRON) info (No MTA installed, discarding output)
Configurando cron para exibir notificações pop-up
O script exibe uma mensagem de notificação pop-up na parte superior de cada hora. Portanto, para isso, uma variável adicional precisa ser exportada:
eval "export $(egrep -z DBUS_SESSION_BUS_ADDRESS /proc/$(pgrep -u $LOGNAME gnome-session)/environ)";
Conteúdo de top-of-hour-chime
#! /bin/bash
# NAME: top-of-hour-chime
# PATH: /usr/local/bin
# DESC: Play sound called by cron
# CALL: Automatically called by /var/spool/cron/crontabs/<user_name>
# DATE: Created Oct 1, 2016. Modified June 10, 2018.
# UPDT: 2016-11-09 - Add notification bubble with time in text.
# 2018-06-10 - Switch from `ogg123` to `paplay` in default installation.
# exit # uncomment to suppress when watching movies
# paplay needs environment variable exported:
export XDG_RUNTIME_DIR="/run/user/1000"
# needed for notify-send
eval "export $(egrep -z DBUS_SESSION_BUS_ADDRESS /proc/$(pgrep -u $LOGNAME gnome-session)/environ)";
# get hour in 12 hour format
HOUR=$(date +%I)
ZHOUR=$(echo $HOUR | sed 's/^0*//')
pactl set-sink-volume 0 -25%
DISPLAY=:0 notify-send --urgency=critical --icon=/usr/share/icons/gnome/256x256/status/appointment-soon.png "It is ""$ZHOUR"" o'clock"
paplay '/usr/share/sounds/ubuntu/ringtones/Melody piano.ogg'
pactl set-sink-volume 0 +25%
o export XDG_RUNTIME_DIR... é necessário para obter o som para o jogo. Isso ocorre porque é cronexecutado em ambiente mínimo. Essa linha deve ser omitida primeiro se você usar um reprodutor de som de terceiros. Se não houver som, coloque a linha de volta. Ainda assim, se não houver som, caça feliz!
Os dois principais noticiários de TV que eu assisto na Internet têm um volume mais baixo que o normal e, portanto, a TV aumentou mais que o normal. Consequentemente, quandoogg123 reproduz arquivos de som, eles soam muito altos. Então pactlé usado para reduzir o volume antes do carrilhão e aumentá-lo depois.
Conteúdo do carrilhão da parte inferior da hora
Isso é quase uma duplicata top-of-hour-chimee talvez redundante aqui, mas incluído para fins de documentação completa.
#! /bin/bash
# NAME: bottom-of-hour-chime
# PATH: /usr/local/bin
# DESC: Play sound called by cron
# CALL: Automatically called by /var/spool/cron/crontabs/<user_name>
# DATE: Oct 1, 2016. Modified June 10, 2018.
# UPDT: 2018-06-10 Switch from `ogg123` to `paplay` installed by default.
# exit # Uncomment to suppress when watching movies.
# paplay needs environment variable exported:
export XDG_RUNTIME_DIR="/run/user/1000"
pactl set-sink-volume 0 -25%
paplay /usr/share/sounds/ubuntu/ringtones/Bliss.ogg
pactl set-sink-volume 0 +25%