Поиск программы или процесса, запускающего перезагрузку

Для новичков, которым не нужно возиться с настройками студийного -грейда...

исполняемый файл 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}"

3
28.06.2020, 17:39
2 ответа

Если вы замените /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 $*"
...
2
28.04.2021, 23:16

Основным виновником был rebootинициированный корнем crontab; пока я проверял, не было перезагрузки через crontab -e, sudo crontab -eотображал запланированное reboot.

Спасибо за всю помощь и комментарии, которые направили меня в правильном направлении!

1
28.04.2021, 23:16

Теги

Похожие вопросы