Я решил проблему, добавив следующий код в /etc/asound.conf
pcm.custom
{
type plug
slave
{
pcm "dmix:0,0"
}
}
pcm.!default pcm.custom
Вы можете отменить цикл с помощью:CTRL + C
Ваш сеанс должен был завершиться при закрытии сеанса шпатлевки, поэтому цикл больше не будет выполняться
Иногда нажатие на элемент управления -c не работает :тело цикла получает элемент управления -c, и цикл продолжает повторяться. (Хотя я не могу воспроизвести это поведение прямо сейчас с sleep 1
в качестве условия цикла или тела, я помню, что видел это.)
control -z может остановить это, и цикл не возобновится после fg
, если только цикл не был внутри подоболочки, такой как (while true;do : ;done)
. (С bash
в GNU/Linux ).
Или управление -z / fg
полезно, если вы хотите, чтобы текущая -итерация цикла завершалась чисто, но не начиналась другая итерация.
(Элемент управления -z останавливает задание, заставляя ядро доставлять SIGTSTP точно так же, как элемент управления -c доставляет SIGINT на TTY, который не находится в режиме RAW. Действие по умолчанию для этого сигнала — остановить задание. fg
и bg
являются командами управления заданиями -, см. встроенный bash -в «справке» для них и команду jobs
.)
Учитывая правильное замечание @PeterCordes о том, что Ctrl -C работает не всегда, я иногда использую решение, чтобы не делать цикл бесконечным. Вместо этого я часто пишу:
while sleep 1; do...; done
Если эта задержка в одну -секунду слишком велика для замедления, например, когда вы хотите зациклиться как можно быстрее, тогда обусловьте цикл while
наличием файла семафора:
touch /tmp/ENABLE-LOOP-FILE
while [ -f '/tmp/ENABLE-LOOP-FILE' ]; do...; done
Когда вам нужно убить цикл, перейдите в другую терминальную сессию и удалите файл:
rm /tmp/ENABLE-LOOP-FILE