GNU/Linux >> Tutoriales Linux >  >> Linux

redirigir los registros del servicio systemd al archivo

Redireccionar

StandardOutput=file:/var/log/flume-ng/log1.log
StandardError=file:/var/log/flume-ng/log2.log

como se documenta aquí:https://www.freedesktop.org/software/systemd/man/systemd.exec.html#StandardOutput=

Tenga en cuenta que de esta manera todo el contenido de los archivos de registro se sobrescribirá cada vez que se reinicie el servicio.

Anexar

Si desea mantener el registro de archivos entre los reinicios del servicio y simplemente agregarle nuevas líneas registradas:

# Works only in systemd v240 and newer!
StandardOutput=append:/var/log/flume-ng/log1.log
StandardError=append:/var/log/flume-ng/log2.log

En el caso de systemd anterior a v240, puede usar:

ExecStart=/bin/sh -c 'exec /usr/bin/my_binary [arguments] >>/var/log/flume-ng/log1.log 2>>/var/log/flume-ng/log2.log'

exec significa que el programa shell se sustituirá por my_binary programa después de configurar redirecciones sin bifurcar. Así que no habrá diferencia de ejecutar my_binary directamente después de ExecStart= .


ExecStart=/usr/bin/nohup …

Esto está mal. quitarlo Este servicio no se ejecuta en una sesión de inicio de sesión interactiva. No hay terminal de control, o líder de sesión, para enviarle una señal de colgado en primer lugar.

ExecStart=… &

Esto está mal. quitarlo Esto no es un script de shell. & no tiene un significado especial similar a un shell y, en cualquier caso, sería la forma incorrecta de iniciar un servicio.

StandardOutput=/var/log/flume-ng/log1.log
StandardError=/var/log/flume-ng/log2.log

Estos están mal. No utilice estos. systemd ya envía la salida estándar y el error de los procesos de servicio a su diario, sin ninguna configuración de este tipo en la unidad de servicio. Puedes verlo con

journalctl -e -u flume-ng.service


Para iniciar sesión en un archivo sin sobrescribir (se requiere system.d versión 240+):

StandardOutput=append:/var/log/flume-ng/log1.log
StandardError=append:/var/log/flume-ng/log2.log

o

StandardOutput=append:/var/log/flume-ng/log.log
StandardError=inherit

Linux
  1. ¿Buscar el archivo de registro de Firefox?

  2. ¿Ejecutar el servicio Systemd después de Automount pero después de acceder?

  3. Servicio de sistema operativo Linux 'syslog'

  4. ¿Cómo usar Systemd para reiniciar un servicio cuando está inactivo?

  5. Cómo detener el servicio systemd

Comandos Systemctl para administrar el servicio Systemd

Cómo ejecutar Shell Script como servicio Systemd en Linux

Configurando logrotate en Linux

Rotación de archivos de registro

Registros del sistema

¿Rotación de registro de stdout?