3

Я использую модификацию системы сборки LaTeX Пола Биггара.

Ядром этой системы является просто bash-скрипт, который выполняет бесконечный цикл. Вопрос в том, как мне запустить этот скрипт?

На данный момент я просто запускаю его, вызывая его в терминале:

$ ./build-it.sh report

Однако есть две проблемы с этим:

  1. Это загромождает терминал с несоответствующим выходом. Перенаправление стандартных потоков вывода / ошибок в /dev/null не помогает. Фактически каждая строка , выполняемая в сценарии, также записывается в консоль. Это даже нормально?
  2. Через некоторое время (я бы сказал, около 30 минут) сценарий завершается с ошибкой («Превышено ограничение Cputime»).

Первая проблема, вероятно, может быть решена с помощью nohup и закрытием окна терминала. Но это все еще оставляет вторую проблему. Я также чувствую, что это не «чистое» решение, потому что я предпочел бы нормально запускать скрипт в фоновом режиме и предотвращать его стандартный вывод (и, кстати, не сообщения об ошибках).

Есть ли правильный способ сделать это?

3 ответа3

2

Если вы используете скрипт, перенесенный ответ здесь, то вы можете удалить set -x , который для отладки.

Если вместо этого вы перенаправляете stderr сценария, он должен подавить выходные данные отладки, но также подавит любые сообщения об ошибках.

Редактировать:

Также в этом скрипте есть строка ulimit -t 10 . Удаление этого, вероятно, поможет.

1

Пытаться:

ulimit -t unlimited

для установки лимита времени процессора и

man bash

дополнительные параметры встроенной команды ulimit bash

0

Вы можете вызвать $ ./build-it.sh report & exit что решит первую проблему.

Что касается второго, он может иметь больше общего с реальным сценарием.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .