Хорошо, у меня есть 2 машины linux, машина A и машина B. Машина A - это сервер, на котором работает аудиосервер icecast. Machine B - это настольный компьютер в студии, на котором работает BUTT(Broadcast Using This Tool) - приложение x11, которое отправляет звук обратно на машину A.
Попка на машине B иногда дает сбой (фактически любое приложение, которое мы пробовали, и на окнах тоже со временем вылетает), убивая поток. Однако я обнаружил, что я настраиваю Icecast для запуска полосы, когда источник отключается. У меня есть авторизация с закрытым ключом, работающая для ssh между A и B. У меня есть скрипт, который, если я буду работать на B (через обычный интерактивный ssh), будет повторно прикладывать усилия. Чего я не знаю, так это как написать скрипт на А, чтобы он запускал тот скрипт, который у меня есть на Б.
Я попробовал это:
#!/bin/bash
ssh username_placeholder@B '/home/username_placeholder/broadcast.sh'
exit
работает от А. Но это, кажется, поддерживает ssh. Все, что я хочу сделать, это запустить его и повесить трубку. broadcast.sh выглядит так:
#!/bin/bash
killall butt
env DISPLAY=:0 butt&
exit
Это потому, что приклад работает только в графическом режиме. и мы все равно хотим время от времени видеть графический интерфейс в студии. Итак, как мне сделать так, чтобы он запускал этот сценарий и зависал, или есть еще лучший способ сделать это на A, не пытаясь вызвать сценарий на B. Я хочу, чтобы он убил приклад, если он все еще работает, а затем запустил его (запомните это по-прежнему должен отображаться на B, а не на A. А - это компьютер, который может знать, когда источник на B зависает.)
Компьютер A работает на сервере Ubuntu, а на компьютере B работает Linux Mint на случай, если кому-то это захочется.