크롬을 실행하기 전에 펄스 오디오를 기다리는 방법은 무엇입니까?

크롬을 실행하기 전에 펄스 오디오를 기다리는 방법은 무엇입니까?

Linux Linaro(Debian) OS 9.3을 기반으로 임베디드 보드(Tinkerboard)를 개발하고 있습니다.

보드는 기본적으로 시작 시 자동화된 스크립트가 포함된 sh 스크립트에 의해 브라우저가 실행되는 (웹) 키오스크입니다. 키오스크는 js 이벤트에 의해 트리거된 여러 mp3 파일을 재생해야 합니다.

대부분의 경우 오디오가 재생되지 않습니다. 브라우저를 수동으로 실행하면 오디오가 항상 정상입니다.

지금까지 나는 chromium 프로세스가 pulseaudio 프로세스(PID 값을 기반으로 함)보다 먼저 실행된다는 것을 알았으므로 브라우저가 손실을 일으키는 오디오 프로세스에 "연결"하고 있다고 생각하지 않습니다.

스크립트를 다음과 같이 수정했습니다.

 # Script.sh
 pulseaudio
 sleep 4s
 chromium -kiosk ....

이렇게 하면 오디오는 괜찮은데 마음에 안드네요.. 우선 문제의 원인을 잘 모르겠네요.

이러한 프로세스를 올바른 순서로 배치하는 방법이 있습니까?

오디오 문제에 대한 다른 이유가 있습니까?

답변1

것 같다정확히합리적인 초기화 시스템이 해결하는 문제는 다음과 같습니다.

서비스와 프로그램을 올바른 순서로 시작하고, 필요한 항목이 마지막 시작보다 빠르지 않고 4초 후에 고정되지 않은 경우 "확인하기 위해" 시작합니다.

Debian 9에서는 systemd 서비스를 사용하여 wayland 또는 Xorg를 실행하는 사용자 세션을 시작한 다음 거기에서 크롬을 시작하고 표시할 수 있습니다.

프로세스를 하나씩 수동으로 시작하는 대신 다음이 필요합니다.실제로시작되었는지 확인하십시오.

pulseaudio.service에 의존하는 chromium-kiosk.service 사용자 서비스를 정의하기만 하면 이 서비스를 시작하면 pulseaudio 서비스가 시작될 때까지 기다립니다. 이를 수행하는 방법은 여러 곳에서 설명됩니다.여기.

이를 수행하면 Chromium이 충돌할 경우 자동으로 다시 시작하고, 시작 실패를 기록하고, Chromium 프로세스 자체를 다른 서비스의 요구 사항으로 만드는 기능이 포함됩니다. 무엇보다도, 실제로 "전체 부팅을 하려면 크롬을 부팅해야 합니다"라고 말하면 시스템이 부팅에 필요한 모든 것을 보장해 줍니다.

관련 정보