GNU/Linux >> Tutoriels Linux >  >> Linux

rediriger les journaux du service systemd vers un fichier

Redirection

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

comme documenté ici :https://www.freedesktop.org/software/systemd/man/systemd.exec.html#StandardOutput=

Notez que de cette façon, tout le contenu des fichiers journaux sera écrasé à chaque redémarrage du service.

Ajouter

Si vous souhaitez conserver le journal des fichiers entre les redémarrages du service et y ajouter simplement de nouvelles lignes enregistrées :

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

En cas de systemd antérieur à v240, vous pouvez utiliser :

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

exec signifie que le programme shell sera remplacé par my_binary programme après avoir configuré les redirections sans fork. Il n'y aura donc aucune différence avec l'exécution de my_binary directement après ExecStart= .


ExecStart=/usr/bin/nohup …

C'est faux. Retirez-le. Ce service ne s'exécute pas dans une session de connexion interactive. Il n'y a pas de terminal de contrôle, ni de chef de session, pour lui envoyer un signal de raccrochage en premier lieu.

ExecStart=… &

C'est faux. Retirez-le. Ce n'est pas un script shell. & n'a pas de signification spéciale semblable à celle d'un shell et, dans tous les cas, ce serait la mauvaise façon de démarrer un service.

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

Ceux-ci sont faux. Ne les utilisez pas. systemd envoie déjà la sortie standard et l'erreur du ou des processus de service dans son journal, sans aucun paramètre de ce type dans l'unité de service. Vous pouvez le voir avec

journalctl -e -u flume-ng.service


Pour se connecter au fichier sans écraser (system.d version 240+ requise) :

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

ou

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

Linux
  1. Trouver le fichier journal de Firefox ?

  2. Exécuter le service Systemd après le montage automatique, mais après y avoir accédé ?

  3. Comment utiliser Systemd pour redémarrer un service en panne ?

  4. Comment rediriger la sortie du service systemd vers un fichier

  5. Comment arrêter le service systemd

Commandes Systemctl pour gérer le service Systemd

Comment exécuter un script Shell en tant que service Systemd sous Linux

Configuration de logrotate sous Linux

Rotation des fichiers journaux

Journaux système

créer un fichier journal