Una línea de comandos que contiene --errors-to-stderr parece una queja y no lo es. La palabra pertenece al nombre de una opción, igual que el nombre de un archivo de registro no dice nada sobre lo que contiene el archivo. Antes de cambiar cualquier configuración, establezca qué está leyendo en realidad.

La decisión tiene tres ramas: la línea es el propio arranque, la línea es salida que imprimió el programa, o la línea es texto que un envoltorio repitió antes de que arrancara el VPN. Cada rama apunta a un lugar distinto donde mirar, y solo una de ellas es el mensaje propio del VPN.

El nombre de una opción no es un mensaje de estado

Para Community OpenVPN, --errors-to-stderr dirige la salida de errores al error estándar en lugar de a la salida estándar. Es una elección de flujo, no un filtro de gravedad, y no crea ningún error. Un --log o un --log-append posterior puede redirigir los mismos mensajes a un archivo, por eso el efecto del indicador depende del resto del comando. La referencia de registro del origen define ese orden.

Así que la presencia del indicador dice a dónde irían los errores. No dice que haya ocurrido uno.

Línea de arranque o salida del proceso

Empiece preguntando quién imprimió el texto. Una unidad de servicio, un paquete de aplicación o un envoltorio de shell suelen repetir el argv completo antes de que el proceso del VPN escriba nada. Ese eco es indistinguible de una línea de estado si solo ve un fragmento.

Si la línea vino del envoltorio, el VPN aún no se ha ejecutado y no tiene nada que informar. Mire más abajo en la salida el primer mensaje que lleve una marca de tiempo o el nombre de un subsistema.

Si la línea vino del proceso del VPN, sigue siendo solo la invocación. OpenVPN no imprime su propia línea de comandos como error, y los mensajes que importan vienen después.

Encuentre el proceso y su resultado

Establezca si el proceso sigue ejecutándose. Un cliente que está activo y reintenta se ve muy distinto de uno que salió de inmediato, y la misma línea de comandos precede a ambos.

Luego lea el resultado a través del componente que posee el proceso. Con systemd, es el diario de la unidad; en una aplicación de escritorio, es el registro propio o la consola de la aplicación. El estado de salida y los últimos mensajes responden la pregunta que el nombre de la opción solo insinúa.

Un error de análisis de configuración, un archivo ausente, una credencial rechazada y un tiempo de espera del par son cuatro eventos distintos. Llegan por el mismo flujo. Necesitan cuatro arreglos distintos. Decida cuál tiene antes de tocar el perfil, y cite el mensaje exacto cuando pida ayuda.

Cuándo se gana el indicador su lugar

El indicador se gana su lugar cuando la salida estándar transporta datos y los errores no deben contaminarla, o cuando un envoltorio captura los dos flujos por separado. En una sesión en primer plano dentro de un terminal, ambos flujos llegan ante usted. En ese caso, la distinción rara vez cambia lo que hace.

Consérvelo si el script que lo rodea depende de la separación. Quitarlo porque el nombre parece alarmante cambia dónde aparecen los mensajes y no arregla nada más.

Qué no cambiar

No trate la opción como un paso de reparación. Suprimirlo no puede arreglar un certificado, una ruta ni un fallo de autenticación.

Si la invocación contiene --config stdin, la configuración se alimenta por la entrada estándar. Es una decisión aparte sobre cómo se suministra el archivo. Cambie una cosa a la vez y vuelva a leer el mensaje real antes de cambiar la segunda.

Artículos relacionados