Командная строка, содержащая --errors-to-stderr выглядит как жалоба, но ею не является, выглядит как жалоба, но ею не является. Слово относится к имени параметра — так же, как имя файла журнала ничего не говорит о том, что в нём записано. Прежде чем менять любую конфигурацию, установите, что вы на самом деле читаете.

У решения три ветви: строка — это сам запуск, строка — это вывод, который напечатала программа, или строка — это текст, который оболочка повторила до запуска VPN. Каждая ветвь указывает на своё место для проверки, и только одна из них — собственное сообщение VPN.

Имя параметра — не сообщение о состоянии

Для Community OpenVPN, --errors-to-stderr направляет вывод ошибок в стандартную ошибку вместо стандартного вывода. Это выбор потока, а не фильтр важности, и он не создаёт ошибку. Более поздний --log или --log-append может перенаправить те же сообщения в файл, поэтому эффект флага зависит от остальной части команды. Справочник по журналированию из источника определяет этот порядок.

Итак, наличие флага говорит о том, куда пойдут ошибки. Оно не говорит, что одна произошла.

Строка запуска или вывод процесса

Начните с вопроса, кто напечатал текст. Модуль службы, пакет приложения или оболочка часто повторяют весь argv до того, как процесс VPN что-либо запишет. Это эхо неотличимо от строки состояния, если вы видите лишь фрагмент.

Если строка пришла от оболочки, VPN ещё не работал и ему нечего сообщать. Смотрите ниже в выводе первое сообщение с отметкой времени или именем подсистемы.

Если строка пришла от процесса VPN, это всё ещё только вызов. OpenVPN не печатает собственную командную строку как ошибку, а важные сообщения идут после неё.

Найдите процесс и его результат

Установите, работает ли процесс до сих пор. Клиент, который работает и повторяет попытки, выглядит совершенно иначе, чем тот, что сразу завершился, и одна и та же командная строка стоит перед обоими.

Затем читайте результат через компонент, которому принадлежит процесс. В systemd это журнал модуля; в настольном приложении — собственный журнал или консоль приложения. Код выхода вместе с последними сообщениями отвечает на вопрос, на который имя параметра лишь намекает.

Ошибка разбора конфигурации, отсутствующий файл, отклонённые учётные данные и тайм-аут партнёра — четыре разных события. Они приходят по одному и тому же потоку. Им нужны четыре разные исправления. Определите, какое из них у вас, прежде чем трогать профиль, и цитируйте точное сообщение, когда просите о помощи.

Когда флаг заслуживает своего места

Флаг заслуживает своего места, когда стандартный вывод несёт данные и ошибки не должны его загрязнять, или когда оболочка захватывает два потока по отдельности. В сеансе на переднем плане в терминале оба потока оказываются перед вами. В этом случае различие редко меняет то, что вы делаете.

Оставьте его, если окружающий скрипт зависит от разделения. Удаление из-за того, что имя выглядит тревожно, меняет место появления сообщений и больше ничего не исправляет.

Что не менять

Не считайте параметр шагом ремонта. Его удаление не может исправить сертификат, маршрут или сбой аутентификации.

Если вызов содержит --config stdin, конфигурация подаётся через стандартный ввод. Это отдельное решение о том, как предоставляется файл. Меняйте по одной вещи за раз и перечитайте фактическое сообщение, прежде чем менять вторую.

Похожие статьи