Où se trouve le fichier journal de rc.local?

52

J'ai quelques commandes à dans mon rc.local. Je sais qu'ils échouent. Comment puis-je obtenir un fichier journal avec les messages produits en exécutant rc.local? Où est-il situé?

J'ai vérifié le /var/log/boot.log. Je sais que mes messages ne sont pas là car je sais déjà quelle est la raison de l'échec. Mais je veux toujours être sûr du fichier journal.

Remarque, je ne veux pas relancer le script, je pourrais mais je ne veux pas. Je préférerais analyser ce qui s'est passé lors du démarrage.

Merci pour toute aide.

Ubuntu 12.04 Desktop (si cela compte)

Vladimir
la source

Réponses:

59

Sauf si une commande a une sortie ou une journalisation déjà configurée, les rc.localcommandes ne se connecteront nulle part.

Si vous voulez voir les journaux pour des commandes spécifiques, essayez de rediriger stdout et stderr pour rc.localquelque part , vous pouvez vérifier. Essayez d'ajouter ceci en haut de votre /etc/rc.localfichier:

exec 1>/tmp/rc.local.log 2>&1  # send stdout and stderr from rc.local to a log file
set -x                         # tell sh to display commands before execution

Bien que cela nécessite de réexécuter le rc.localfichier.

Ross
la source
3
exec &> /tmp/rc.local.logest suffisant au lieu des deux appels à la direction :-)
AjayKumarBasuthkar
2
@ abu-bua: Faites attention lorsque vous passez en revue les suggestions de modification qui introduisent des modifications fonctionnelles! &>la redirection est un bash-isme et échoue silencieusement dans Dash et d'autres implémentations «simples» d' /bin/shinterpréteurs comme celle utilisée pour rc.local.
David Foerster
"au sommet" signifie-t-il avant la première ligne !/bin/sh -e?
Ben le
12

Essayez /var/log/syslogplutôt de rechercher les échecs dans le fichier.

Sylvain Pineau
la source
10

Avec systemd, rc.local est considéré comme un service pour lequel systemd collecte les journaux. Vous pouvez les revoir avec:

systemctl status rc.local.service

Vous pouvez voir les erreurs (si elles existent) dans le journal de service.

Amir Ohadi
la source
2

Regarder dans

  1. /var/log/messages
  2. /var/log/daemon

Ou utilisez la commande dmesg

less /var/log/boot.log
less /var/log/dmesg
grep error /var/log/dmesg
grep <your expected error string> /var/log/boot.log

Ou utilisez scriptou utilisez un autre outil pour capturer une connexionrc.local

Kirchberger
la source