Я не уверен, можно ли использовать разные определения dmix
с одним и тем же ipc_key
; возможно, лучше использовать общее устройство dmix
.
Чтобы иметь возможность воспроизводить стереофайл на все каналы, необходимо сначала преобразовать его в моно.
pcm.dmix8 {
type dmix
slave {
pcm "hw:1"
rate 44100
channels 8
period_size 1024
buffer_size 32768
}
}
pcm.ch1 {
type plug
slave.pcm dmix8
ttable.0.0 1
}
pcm.ch2 {
type plug
slave.pcm dmix8
ttable.0.1 1
}
# and so on with "ttable.0.x 1"
pcm.all {
type plug
slave {
pcm {
type route
slave.pcm dmix8
ttable [ [ 1 1 1 1 1 1 1 1 ] ]
}
channels 1
}
}
Если у вас нет какой-либо логики внутри процесса увядания для управления другим процессом при изменении статуса, вам необходимо отслеживать / контролировать их с помощью PID:
#!/bin/bash
./proc1.sh &
pid_1=$! ## PID of proc1.sh
./proc2.sh &
pid_2=$! ## PID of proc2.sh
while ps -p ${pid_1} &>/dev/null; do :; done ##Checking for existence of proc1.sh
kill ${pid_2} ## Killing proc2.sh when proc1.sh is not running anymore
При использовании GNU Parallel это выглядит так:
parallel --halt now,fail=1 ::: script1.sh script2.sh