Кажется, что необходимо экспортировать переменную для него, чтобы быть видимыми к go env
:
export GOPATH="$HOME/.go"
должен работать.
Ограничения процесса контролируются с помощью setrlimit (2)
Таким образом, вы можете просмотреть его управление:
RLIMIT _ SIGPENDING (Since Linux 2.6.8)
Задает ограничение на количество сигналов, которые могут быть поставлены в очередь для реального идентификатора пользователя вызывающего процесса. Для проверки этого предела учитываются как стандартные сигналы, так и сигналы реального времени. Однако ограничение применяется только для sigqueue (3); всегда можно использовать kill (2) для постановки в очередь одного экземпляра любого из сигналов, которые еще не поставлены в очередь процесса.
Как правило, вы можете получить самую подробную информацию при просмотре страниц syscalls. C является родным языком UNIX/Linux.
-121--45771-У меня есть экспериментальный обходной путь.
Сначала необходимо выяснить имя приемника для адаптера.
Откройте оболочку. Мы предполагаем, что bash
и предотвратим любую проблему локализации, переключившись на языковой стандарт по умолчанию:
export LC_ALL=C
Чтобы получить список раковин:
pacmd list-sinks | grep name:
Можно прочитать выходные данные и скопировать-вставить имя вручную в командную строку: ADAPTER _ SINK _ NAME = name _ in _ your _ setup
ADAPTER_SINK_NAME=$( pacmd list-sinks | sed -n 's/^.*name: <\([^>]*\.usb[^>]*\)>$/\1/p' | head -n 1 )
echo $ADAPTER_SINK_NAME
Альтернатива с помощью pactl
(но запустите строку export
выше, или она не найдет ничего в нестандартных языках):
ADAPTER_SINK_NAME=$( pactl list sinks | sed -n 's/^.*Name: \(.*\.usb.*\)$/\1/p' | head -n 1 )
echo $ADAPTER_SINK_NAME
Теперь это обеспечит точки (1) (2) (3) вопроса:
pactl set-default-sink $ADAPTER_SINK_NAME
Интересно, что я впервые использовал pacmd
( pacmd
вместо pactl
), который обеспечивал (2) и (3), но не всегда (1).
Оно основано на Можно ли использовать PulseAudio для воспроизведения музыки на двух звуковых картах одновременно? хотя принцип заключается в том, чтобы играть на «одной звуковой карте одновременно».; -)
pacmd load-module module-combine sink_name=adapter-soft-volume slaves=$ADAPTER_SINK_NAME
pactl set-default-sink adapter-soft-volume
Теперь все работает так, как требуется в вопросе.
Если выполнить команды выше несколько раз, будет несколько комбинированных раковин, и будет использоваться первый, а не последний. Если по какой-либо причине вы хотите начать заново, сначала запустите это для очистки комбинированного раковины:
pacmd unload-module module-combine
Не используйте очистку сейчас, если вы хотите продолжить
Команда выше работает для новых потоков, а не тех, которые уже играют. Это позволит скорректировать необходимое:
for SINK_ID in $(pactl list sink-inputs | sed -n 's/^Sink Input #\([0-9]*\)$/\1/p')
do
echo Sink $SINK_ID
pactl move-sink-input $SINK_ID $ADAPTER_SINK_NAME
pactl move-sink-input $SINK_ID adapter-soft-volume
done
Будет предпринята попытка переместить все входы приемника, включая объединенный, который может вызвать круговой путь. К счастью, pulseaudio поступит правильно и напечатает Failure: Invalid argument
один раз, чтобы указать на это.
Вот сценарий, предоставляющий преимущества (1) - (4).
Вы можете добавить move-sink-input
сверху.
Может быть интересно запускать его каждый раз, когда адаптер подключен.
#!/bin/bash
export LC_ALL=C
ADAPTER_SINK_NAME=$( pacmd list-sinks | sed -n 's/^.*name: <\([^>]*\.usb[^>]*\)>$/\1/p' | head -n 1 )
if [[ -z "${ADAPTER_SINK_NAME:-}" ]]
then
ADAPTER_SINK_NAME=$( pactl list sinks | sed -n 's/^.*Name: \(.*\.usb.*\)$/\1/p' | head -n 1 )
fi
echo will plug on $ADAPTER_SINK_NAME
# partial fix, can be run anyway to provide partial benefit if later steps fail
pactl set-default-sink $ADAPTER_SINK_NAME
pacmd unload-module module-combine # not useful first, used to clean things up if run several times
pacmd load-module module-combine sink_name=adapter-soft-volume slaves=$ADAPTER_SINK_NAME
pactl set-default-sink adapter-soft-volume
-121--125533- webster
не является общей командой среди Unix-систем.Он не является частью apt-репозитория Debian и также не является частью двух основных инструментов упаковки Homebrew и MacPorts . Вероятно, он доступен только на компьютерах Стэнфорда.
Однако с помощью одной из двух команд можно легко установить дополнительные команды. Я бы предложил использовать Homebrew, так как многие пакеты предварительно скомпилированы и экономят много времени во время установки.
Вот пример установки homebrew и одной из команд, с которыми вы связывались (lynx).
# Install homebrew
> ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
…
# Just search for the command you want. The package containing it, will show up
> brew search lynx
lynx
# Then install it
> brew install lynx