linux - воспроизводить звук при входе в систему?

Я установил Gentoo без графического интерфейса и добавил aplay /usr/shar/sounds/startup3.wav &> /dev/null & в мой файл /etc/bash/bashrc. Это прекрасно работает при воспроизведении звукового файла, но как только звук заканчивается, и я нажимаю Enter, он говорит мне, что процесс завершен. Когда я запускаю звук на переднем плане, у меня нет возможности что-либо делать в своем терминале, пока не закончится воспроизведение звука.

Можно ли как-нибудь воспроизвести звук без каких-либо выходных или сбоев после входа в систему?

1 ответ

Решение

Это сообщение "Готово" вызвано тем, что командная оболочка все еще находится под контролем задания:

$ sleep 10 &
[1] 660
$ jobs
[1]+  Running                 sleep 10 &

 (time passes)

$ 
[1]+  Done                    sleep 10

Вы можете просто удалить все задания из управления заданиями с помощью disown(а)

$ sleep 100 &
[1] 3804
$ jobs
[1]+  Running                 sleep 100 &
$ disown
$ jobs
$

Я не знаю способа отречься от работы с самого ее начала(б), поэтому я предлагаю вам просто поставить disown на ваш bashrc, сразу после звуковой команды. Однако это отменит все рабочие места - я не знаю, если это требуется. В противном случае вы можете использовать disown %aplay,


(А) man bash

disown [-ar] [-h] [jobspec...] Без опций каждая спецификация заданий удаляется из таблицы активных заданий. Если jobspec отсутствует и не указан ни -a, ни -r, используется оболочка для текущего задания. Если указана опция -h, каждая спецификация заданий не удаляется из таблицы, а помечается так, что SIGHUP не отправляется заданию, если оболочка получает SIGHUP. Если спецификация заданий отсутствует и не указана ни опция -a, ни опция -r, используется текущее задание. Если спецификация заданий не указана, опция -a означает удалить или отметить все задания; опция -r без аргумента jobspec ограничивает выполнение операций заданиями. Возвращаемое значение равно 0, если в задании не указано допустимое задание.

(б) Однако в Z Shell zshэто просто:

zsh$ sleep 10 &!
zsh$ jobs
zsh$
Другие вопросы по тегам