Я - разработчик и настроил сервер на человечности 16.04, выполнив веб-сервисы.
Те веб-сервисы называют некоторый файл сценария локально, сценарий делает некоторую задачу и должен играть звук, когда задача выполнена.
Проблема состоит в том, что сценарий называют, задачи сделаны, но звук не играется.
Вот мой контрольный список:
Вот пример того, что я протестировал:
# script name : eject.sh
# ... here I do some stuff, which are working fine...
play -q /mnt/datas/wifi_started.mp3 >/dev/null
cvlc --play-and-exit /mnt/datas/wifi_started.mp3 &>/dev/null &
nohup mplayer /mnt/datas/wifi_started.mp3 > /dev/null 2>&1
Все строки выше играют звук, когда файл сценария выполняется от терминала и никакого звука при выполнении от веб-сервиса!
Что я мог сделать для решения этого?
Звук должен играться в сервере, но проблема состоит в том, что он будет только играть, если пользователь будет зарегистрирован.
Я протестировал это в системах тестирования Lubuntu и Xubuntu Bionic (что я тестирую так или иначе). Я установил openssh-server
и espeak
(и в Xubuntu-ядре и Ubuntu Вам нужен также пакет программы gnome-system-tools
получить программу users-admin
).
Затем существует легкая фиксация:
users-admin
Вы, возможно, должны переместить окно (с высоким звуком + левая кнопка мыши) для нахождения кнопки OK.
Затем это работает в то время как все еще в журнале на экране для проигрывания звука через ssh
и я предположил бы также через другие веб-сервисы,
ssh tester@192.168.0.10 "espeak 'Hello while still at the log in screen'"
Измените идентификатор пользователя и сетевой адрес для соответствия случаю.
Сделать вещи гладкими (с ssh
) необходимо войти в систему с ключами, но я не знаю, является ли это проблемой с веб-сервисом.
Я надеюсь, что это может помочь Вам играть звук, который можно услышать, когда задачи в сервере выполнены.
ssh
и звук, который будет играться в клиентеЕсли Вы регистрируетесь на пути ssh
звук в сервере, не в клиенте. Я предполагаю, что Вы хотите, чтобы звук был передан клиенту.
Возможно передать звук клиенту, но это не просто. Возможно, Вы найдете что-то полезным при просмотре Интернета со следующей строкой поиска, звуком Linux в клиенте. Я думаю, что сделал (но не протестировал его).
Но существует обходное решение, которое более просто. Выполните задачи в сервере, таким образом, что можно играть звук локально в клиенте, когда задачи закончились.
Пример:
openssh-server
установлен на моей рабочей станции, и я могу соединиться с нею от любого другого компьютера через мою локальную сеть.
Установка espeak
,
sudo apt install espeak
Следующий сценарий оболочки иллюстрирует то, что происходит,
ssh sudodus@192.168.0.2 \
"echo 'Who am I to do this?'| tee /dev/stderr |espeak; whoami| \
tee /dev/stderr |espeak| tee /dev/stderr |espeak;\
echo 'At which server?'| tee /dev/stderr |espeak;hostname -A| tee /dev/stderr|espeak"
sleep 1
echo 'Who am I to check this?'| tee /dev/stderr |espeak; whoami| tee /dev/stderr |espeak
echo 'At which client?' | tee /dev/stderr |espeak
hostname -A| tee /dev/stderr |espeak
Это - записанный вывод от живого диска с Lubuntu.
lubuntu@lubuntu:~$ ./tasks-at-server_reported-at-client
sudodus@192.168.0.2's password:
Who am I to do this?
sudodus
At which server?
xw8400
Who am I to check this?
lubuntu
At which client?
lubuntu
lubuntu@lubuntu:~$
Если можно услышать оба компьютера, Вы услышите, что сервер 'говорит' и после этого слышит, что клиент 'говорит'. Иначе Вы услышите, что клиент 'говорит'.