---
title: Archivos y servicios
url: https://doc2.pstreamer.tv/es/manual/install/files.html
lang: es
product: Perfect Streamer
version: 2.0.2.362
---

# Archivos y servicios

****/usr/local/bin/pss****
  Archivo ejecutable.
****/opt/pss/config/pss.properties****
  Configuración global, registros, rutas de carpetas, etc. Después de realizar cambios, reiniciar el servicio.
****/opt/pss/config/pss.json****
  Archivo de configuración principal. Se crea y actualiza automáticamente. Al iniciarse, el servicio intenta cargar precisamente este archivo. La estructura del archivo: véase [El archivo de configuración pss.json](../extras/config_file.md#extras-config-file).
****/opt/pss/config/pss_last.json****
  Una copia del último *pss.json* que se cargó limpiamente. Se reescribe en cada arranque en el que se cargó precisamente *pss.json*; un arranque sobre un archivo de reserva no la actualiza, pues dejaría de ser la última correcta. Sirve como primera alternativa si el archivo principal no se ha podido analizar. En un nodo que no se ha reiniciado nunca desde la instalación, y allí donde el directorio de ajustes está cerrado a escritura, este archivo no existe.
****/opt/pss/config/pss_back.json****
  Copia de seguridad de la configuración anterior en funcionamiento. Se crea únicamente al restaurar los ajustes desde una copia guardada previamente en la interfaz web ([Mantenimiento](../webui/administration.md#webui-maintenance)) y se utiliza como alternativa después de *pss_last.json*. El servicio no mantiene una copia de seguridad periódica, por lo que en un nodo donde nunca se han restaurado los ajustes este archivo no existe.
****/opt/pss/config/pss_default.json****
  Archivo de configuración predeterminado. Se suministra junto con el paquete y se aplica como última alternativa si no se pueden cargar ni *pss.json*, ni *pss_last.json*, ni *pss_back.json*. A partir de él se crea también el *pss.json* de trabajo en el primer arranque: el archivo define el puerto de la interfaz web `8808` y la cuenta *admin* / *admin*.
****/opt/pss/config/bad/****
  Carpeta de archivo de los archivos *pss.json* dañados. Si el archivo de configuración principal no se puede analizar en el arranque, se traslada aquí con un nombre de la forma *pss_YYYYMMDD_HHMMSS.json*. El directorio se crea automáticamente y no crece sin límite: en él quedan los veinte archivos con los nombres más altos. Para más detalles, véase la sección Comportamiento en el arranque y ante errores de configuración.
****/opt/pss/data****
  Carpeta de almacenamiento de datos. Se crea y actualiza automáticamente. Puede modificarse en el archivo de configuración global.
****/usr/lib/systemd/system/pss.service****
  Archivo de unidad systemd del servicio.
****/var/log/pss****
  Carpeta de escritura de registros. Puede modificarse en el archivo de configuración global.

El nombre del servicio es **pss**. Se ejecuta con el usuario **pss**.

El trabajo con la llave lo proporciona el paquete del sistema de protección **aksusbd**, que incluye los servicios **hasplmd** y **aksusbd**. El paquete **pstreamer** declara una dependencia de él, en versión 10.33 o más reciente: él mismo no contiene el servicio de protección, pero está en el mismo repositorio, de modo que el gestor de paquetes lo instala junto con él. Un servicio de protección más antiguo no puede cargar las bibliotecas del proveedor que **pstreamer** deposita en */var/hasplm*.

## Comportamiento en el arranque y ante errores de configuración

En el arranque, el servicio intenta cargar sucesivamente los archivos de configuración de la carpeta */opt/pss/config*:

1. *pss.json* — archivo de configuración principal.
2. *pss_last.json* — una copia de la última configuración que se cargó limpiamente.
3. *pss_back.json* — copia de seguridad de la configuración de trabajo anterior.
4. *pss_default.json* — configuración predeterminada suministrada con el paquete.

Se utiliza el primer archivo que se carga correctamente. Si los cuatro archivos faltan o están dañados, el servicio arranca con ajustes vacíos: en ellos no hay ninguna cuenta. En ese caso el administrador se crea a mano: detener el servicio, añadir en *pss.json* una entrada en `web-server.login` con las claves `id`, `login` y `password`, y volver a iniciar el servicio; una edición hecha sobre el servicio en marcha se sobrescribe desde la memoria ([La API o el archivo de configuración](../extras/api.md#extras-api-vs-file)).

De la existencia de *pss_last.json* se siguen dos cosas. Primera: borrar *pss.json* ya no arranca el nodo desde cero — el servicio se levantará con *pss_last.json* y lo volverá a escribir en *pss.json*. No habrá alerta, pero tampoco pasará inadvertido: en el registro queda una entrada y en la interfaz web aparece un mensaje de arranque. Para restablecer realmente el nodo se borra *pss.json* junto con *pss_last.json* y *pss_back.json*; entonces el servicio se levanta con *pss_default.json*. Lo demás del directorio de ajustes no debe tocarse: sin *pss.properties* el servicio no arranca en absoluto. Segunda: *pss_last.json* vale exactamente lo que valga la frescura del último arranque limpio. Los ajustes cambiados por la interfaz web que nunca han sobrevivido a un reinicio existen solo en *pss.json*, y una vuelta a la última configuración operativa no los conservará.

**Un archivo de configuración inaceptable.** Si *pss.json* no se ha podido leer, el servicio lo traslada al archivo */opt/pss/config/bad/* con el nombre *pss_YYYYMMDD_HHMMSS.json*; la fecha y la hora del nombre son el momento del archivado en UTC, el mismo cómputo que usa el registro por defecto. Después el servicio continúa la carga en el orden habitual y vuelve a guardar la configuración en funcionamiento en *pss.json* a partir del archivo que sí se cargó. Los detalles (nombre de la clave, descripción del error, nombre del archivo en el archivo histórico) se escriben en el registro de trabajo, y la alerta sobre la carga fallida también nombra directamente la ruta del archivo histórico.

La carga se interrumpe por: un error de sintaxis JSON, un valor *null*, una forma de valor incorrecta (un objeto donde se espera un valor único, y al revés), un número u otra palabra en lugar de *true* y *false*, una cadena demasiado larga, un identificador de entrada de matriz ausente o repetido, la repetición de un valor declarado único. **Una clave desconocida no descarta el archivo:** se ignora, en el registro se escribe una advertencia con el nombre de la sección y de la clave, y en el siguiente guardado la clave desaparece del archivo. El análisis completo de lo que el servicio acepta al leer el archivo y de lo que rechaza está en [Qué hace el servicio al leer el archivo](../extras/config_file.md#extras-config-file-reading).

Solo el archivo principal *pss.json* se archiva. Los archivos *pss_last.json*, *pss_back.json* y *pss_default.json* no se archivan si resultan dañados — las entradas del registro bastan para el diagnóstico, y los propios archivos permanecen en su lugar y pueden corregirse manualmente.

Si en */opt/pss/config/bad/* ya hay un archivo con la misma marca de tiempo (por ejemplo, con dos arranques fallidos en el mismo segundo), el nuevo recibe un sufijo numérico — *pss_YYYYMMDD_HHMMSS_2.json* y siguientes; la copia guardada anteriormente no se pierde. El directorio no puede desbordarse: la aparición de una copia nueva deja en él los veinte archivos con los nombres más altos y el resto se borra. Para los archivos históricos que el servicio nombra por la hora, esos son precisamente los veinte más recientes; los archivos ajenos dejados en el directorio también cuentan y ocupan esas plazas, por lo que conviene no guardar nada superfluo en *bad/*. Una edición fallida, una copia; un reinicio por sí solo no crea copias nuevas, porque el archivo rechazado ya se ha trasladado y en su lugar se ha escrito uno operativo.

**Valores numéricos fuera del rango permitido.** Si en el archivo de configuración aparece un valor numérico menor que el mínimo permitido o mayor que el máximo permitido para ese parámetro, el servicio no descarta el archivo por completo. En su lugar, se anota en el registro una advertencia que indica el nombre del parámetro, el valor leído y el límite aplicado, y el propio valor se ajusta al límite del rango permitido más cercano (el mínimo o el máximo). Una vez finalizada la carga, el servicio vuelve a guardar automáticamente *pss.json* con los valores ya corregidos, de modo que en el siguiente arranque estas advertencias ya no aparecen.

Además del registro, la corrección la anuncia la notificación de arranque del servicio en la interfaz web: indica el número de valores ajustados al límite y remite al registro para los detalles. Léala tras una actualización que haya estrechado algún rango: la corrección es silenciosa y, en un parámetro de retención, significa que los datos que quedan fuera del nuevo límite los borrará la siguiente pasada de limpieza.

Este comportamiento se aplica únicamente durante la carga inicial del archivo de configuración. Al modificar la configuración a través de la interfaz web o de la API HTTP ([Gestión mediante la API HTTP](../extras/api.md#extras-api)), los valores fuera del rango permitido se siguen rechazando con un error — sin corrección automática.

El rechazo no devuelve el nodo a su estado anterior: lo que el nodo ha alcanzado a leer antes del valor no válido permanece aplicado, y un mensaje de guardado rechazado no significa que no haya cambiado nada ([Cómo llegan los errores](../extras/api.md#extras-api-results)).

Editar el archivo a mano, validarlo con el esquema y trasladar los ajustes a otro nodo o a otra versión: [El archivo de configuración pss.json](../extras/config_file.md#extras-config-file) y [Editar, comprobar y trasladar los ajustes](../extras/config_editing.md#extras-config-editing).
