Xvfb не отправляет SIGUSR1, прерывая xvfb-run

Я работал с узловатой проблемой, пытаясь запустить тесты без головок, используя скрипт xvfb-run, поставляемый с Xvfb . Он работает на моих собственных изображениях Ubuntu, работающих в VirtualBox, но на Ubuntu 15.04 AMI, который Atlassian предоставляет для Elastic Bamboo, это не так. Я проследил проблему до здесь:

Xvfb перспективе:

... # Start Xvfb. MCOOKIE=$(mcookie) tries=10 while [ $tries -gt 0 ]; do tries=$(( $tries - 1 )) XAUTHORITY=$AUTHFILE xauth source - << EOF >>"$ERRORFILE" 2>&1 add :$SERVERNUM $XAUTHPROTO $MCOOKIE EOF # handle SIGUSR1 so Xvfb knows to send a signal when it's ready to accept # connections trap : USR1 (trap '' USR1; exec Xvfb ":$SERVERNUM" $XVFBARGS $LISTENTCP -auth $AUTHFILE >>"$ERRORFILE" 2>&1) & XVFBPID=$! wait || : if kill -0 $XVFBPID 2>/dev/null; then break elif [ -n "$AUTONUM" ]; then # The display is in use so try another one (if '-a' was specified). SERVERNUM=$((SERVERNUM + 1)) SERVERNUM=$(find_free_servernum) continue fi error "Xvfb failed to start" >&2 XVFBPID= exit 1 done ... 

Скрипт переходит в «wait», но никогда не получает ожидаемого SIGUSR1 от Xvfb. (Если я отправлю SIGUSR1 вручную, скрипт будет работать нормально). Я обновил все пакеты до самых последних, но до сих пор не люблю, и это странно, потому что я могу заставить его работать с другими системами Ubuntu. Создается журнал ошибок xvfb ($ ERRORFILE), но в нем ничего нет.

Мысли о первопричине или, по крайней мере, углубиться глубже?

Ах, неважно, я, наконец, нашел проблему – Atlassian добавил собственный скрипт оболочки Xvfb (/ usr / local / bin / Xvfb), который блокировал передачу сигнала. Для тех, у кого есть эта проблема в будущем, проверьте и проверьте, выполняется ли Xvfb напрямую или через оболочку, и если это оболочка, она прерывает xvfb-run.