Для новичков, которым не нужно возиться с настройками студийного -грейда...
исполняемый файл pulsepiano
, адаптированный из Ted's Linux Midi Guide для использования Pulse вместо Jack.
Пока я не могу получить скрипт для подключения MIDI -к клавиатуре, но это может быть другой темой.
Вы должны установить fluidsynth
,vmpk
и получить звуковой шрифт:FluidR3_GM.sf2
. Завершающий амперсанд запускает команду в фоновом режиме. Информация aconnect
также адаптирована из руководства Теда.
Если у вас возникли проблемы,
использовать:kill -9 [PID of vmpk|fluidsynth|qsynth]
или :killall fluidsynth
, killall vmpk
и так далее.
Надеюсь, информации не слишком много. Не открывая каждое приложение вручную, это примерно такой же новичок, как и для миди.
#!/bin/bash
fluidsynth --server \
--no-shell \
--audio-driver=pulseaudio \
--gain=1.0 \
--reverb=0.42 \
--chorus=0.42 \
/usr/share/sounds/sf2/FluidR3_GM.sf2 &>/tmp/fluidsynth.out &
sleep 2
vmpk &
sleep 2
vmpkport=$(aconnect -i |grep "client.*VMPK Output" | cut -d ' ' -f 2)0
synthport=$(aconnect -i |grep "FLUID Synth" | cut -d ' ' -f 2)0
echo "vmpk on ${vmpkport} & synth on ${synthport}"
Если вы замените /sbin/reboot
сценарием уведомления и ведения журнала, это может помочь определить причину перезагрузки. Вот один из примеров настройки такого скрипта:
mv /sbin/reboot /sbin/reboot.REAL
cat >>/sbin/reboot <'x'
#!/bin/bash
#
logger -t reboot "Reboot requested but ignored: reboot $*"
# Identify the calling process
ps=$(ps -ef | awk -v ppid=$PPID '$2 == ppid')
logger -t reboot "Parent: $ps"
# Abort
exit 1
x
chmod a+x /sbin/reboot
При вызове этой подделки reboot
вы получите две записи в /var/log/user.log
за вызов. Например,
May 7 16:06:20 pi reboot: Reboot requested but ignored
May 7 16:06:20 pi reboot: Parent: roaima 20862 20857 0 16:01 pts/0 00:00:00 -bash
Возможно, потребуется применить аналогичный стиль перехвата для systemctl... reboot
. Это немного сложнее, потому что важно не нарушать другие функции. Сценарий, начинающийся таким образом, может подойти для установки как/bin/systemctl
:
#!/bin/bash
#
if [[ "$*" != *reboot* ]]
then
logger -t reboot "Not a reboot: systemctl $*"
exec /bin/systemctl.REAL "$@"
fi
logger -t reboot "Reboot requested but ignored: systemctl $*"
...
Основным виновником был reboot
инициированный корнем crontab
; пока я проверял, не было перезагрузки через crontab -e
, sudo crontab -e
отображал запланированное reboot
.
Спасибо за всю помощь и комментарии, которые направили меня в правильном направлении!