Почему делают 'nohup' и 'отрицают' не, работают над SoX (вызванный как 'игра')

Существует различие относительно того, если ресурсы загружаются в сервер X11, и они загружаются клиентом. Например, Вы могли изменить ресурсы сервера после запуска клиента.

Для получения текущих ресурсов сервера можно использовать 'xrdb - запрос - все'.

Для получения текущих клиентских ресурсов я не знаю о решении, но editres (1) позволит Вам отправлять ресурсы совместимому клиенту, в то время как это работает. У Вас, вероятно, будет удача с приложениями, которые используют инструментарии Xaw и Motif-era, но меньше (или не) удача с GTK и спокойными приложениями. Хорошим примером является 'xterm', можно включить и выключить полосу прокрутки через editres, не перезапуская клиент.

4
21.01.2016, 21:00
3 ответа

SoX хочет/нуждается вход и вывод... путем ввода 'игры xxxx' в консоли, Вы выполняете его обычно с stdin и stdout (и stderr), все соединились.

Когда Вы фон задание (с и), это запускается, затем приостанавливается, так как это ожидает доступа к stdin и stdout.

То же самое происходит когда Вы 'nohup' задание. Если этому будет нужен ввод с клавиатуры, то это "заблокируется", и приостанавливаться системой, пока это не получит доступ к stdin.

disown'ing процесс эффективно отключает его от stdin и stdout, которые были подключены к консоли, которая запустила процесс.

Это все еще "работает", но заблокировано (приостановленное) системой, так как это ожидает доступа к stdin и stdout.

1
27.01.2020, 20:50
  • 1
    Вы знаете, почему это успешно работает в 'bg' режиме, в то время как терминал управления все еще существует? stdin все еще активен в том режиме, просто ничто отправленное в него? –  jwd 06.07.2012, 17:50
  • 2
    Это было бы моим лучшим предположением. Зависит от программы и как она обрабатывает свой вход и вывод также. –  lornix 06.07.2012, 17:58

Для редкого человека, который, как я, оба имели эту проблему и наконец сумели погуглить для чего-то, что не было о бейсболе* и хочет фактическое решение:

$ play whatever.wav &>/dev/null </dev/null &

Это работает в фоновом режиме без остановки.

* Рэд Сокс Бостонского бейсбола игры, и по-видимому некоторые игроки предпочитают центр внимания фону. Ворчание.

7
27.01.2020, 20:50
  • 1
    Охладитесь! Мне любопытно - почему там два &? Я незнаком с тем синтаксисом. –  jwd 10.10.2012, 19:38
  • 2
    "и>/dev/null" означает "Перенаправление и stdout и stderr к/dev/null". Это походит">/dev/null 2> &1". Второй амперсанд просто помещает задание в фоновом режиме обычным способом. –  tex 18.10.2012, 17:00

Также можно использовать опцию -q, чтобы убедиться, что SoX не записывает в std-чтобы то ни было, без перенаправления в /dev/null.

$ play filename -q &
0
27.01.2020, 20:50

Теги

Похожие вопросы