openvpn --errors-to-stderr — это параметр запуска, а не ошибка
Если вы видите --errors-to-stderr в командной строке, это не значит, что что-то не удалось. Определите, читаете ли вы строку запуска или вывод процесса, и затем проверьте.
Командная строка, содержащая --errors-to-stderr выглядит как жалоба, но ею не является, выглядит как жалоба, но ею не является. Слово относится к имени параметра — так же, как имя файла журнала ничего не говорит о том, что в нём записано. Прежде чем менять любую конфигурацию, установите, что вы на самом деле читаете.
У решения три ветви: строка — это сам запуск, строка — это вывод, который напечатала программа, или строка — это текст, который оболочка повторила до запуска VPN. Каждая ветвь указывает на своё место для проверки, и только одна из них — собственное сообщение VPN.
Имя параметра — не сообщение о состоянии
Для Community OpenVPN, --errors-to-stderr направляет вывод ошибок в стандартную ошибку вместо стандартного вывода. Это выбор потока, а не фильтр важности, и он не создаёт ошибку. Более поздний --log или --log-append может перенаправить те же сообщения в файл, поэтому эффект флага зависит от остальной части команды. Справочник по журналированию из источника определяет этот порядок.
Итак, наличие флага говорит о том, куда пойдут ошибки. Оно не говорит, что одна произошла.
Строка запуска или вывод процесса
Начните с вопроса, кто напечатал текст. Модуль службы, пакет приложения или оболочка часто повторяют весь argv до того, как процесс VPN что-либо запишет. Это эхо неотличимо от строки состояния, если вы видите лишь фрагмент.
Если строка пришла от оболочки, VPN ещё не работал и ему нечего сообщать. Смотрите ниже в выводе первое сообщение с отметкой времени или именем подсистемы.
Если строка пришла от процесса VPN, это всё ещё только вызов. OpenVPN не печатает собственную командную строку как ошибку, а важные сообщения идут после неё.
Найдите процесс и его результат
Установите, работает ли процесс до сих пор. Клиент, который работает и повторяет попытки, выглядит совершенно иначе, чем тот, что сразу завершился, и одна и та же командная строка стоит перед обоими.
Затем читайте результат через компонент, которому принадлежит процесс. В systemd это журнал модуля; в настольном приложении — собственный журнал или консоль приложения. Код выхода вместе с последними сообщениями отвечает на вопрос, на который имя параметра лишь намекает.
Ошибка разбора конфигурации, отсутствующий файл, отклонённые учётные данные и тайм-аут партнёра — четыре разных события. Они приходят по одному и тому же потоку. Им нужны четыре разные исправления. Определите, какое из них у вас, прежде чем трогать профиль, и цитируйте точное сообщение, когда просите о помощи.
Когда флаг заслуживает своего места
Флаг заслуживает своего места, когда стандартный вывод несёт данные и ошибки не должны его загрязнять, или когда оболочка захватывает два потока по отдельности. В сеансе на переднем плане в терминале оба потока оказываются перед вами. В этом случае различие редко меняет то, что вы делаете.
Оставьте его, если окружающий скрипт зависит от разделения. Удаление из-за того, что имя выглядит тревожно, меняет место появления сообщений и больше ничего не исправляет.
Что не менять
Не считайте параметр шагом ремонта. Его удаление не может исправить сертификат, маршрут или сбой аутентификации.
Если вызов содержит --config stdin, конфигурация подаётся через стандартный ввод. Это отдельное решение о том, как предоставляется файл. Меняйте по одной вещи за раз и перечитайте фактическое сообщение, прежде чем менять вторую.