Bonjour,
Sur une Debian je voudrais savoir ce qui déclenche l'exécution d'un service donné.
Toutes les quelques minutes un service se lance, fait son travail, puis s'arrête, mais je ne trouve pas ce qui provoque son lancement.
J'ai regardé les tâches cron sans rien trouver, et les programmes en mémoire ne me semblent pas avoir de rapport avec ce service. Je ne vois pas non plus de timer systemd qui concerne ce service. Dans le logs je ne trouve rien qui m'aide non plus.
Peut-on faire en sorte d'avoir une trace de ce que fait systemd ? Ou au moins savoir ce qui déclenche le lancement d'un service.
# Quelques idées
Posté par Sylvain Blandel . Évalué à 4.
Il s'agit peut-être d'un timer lié à un utilisateur (pas root) ?
- Pour avoir la liste des timers du système :
systemctl list-timers
(quand on est connecté en root)- Pour avoir la liste des timers d'un utilisateur :
systemctl --user list-timers
(quand on est connecté en tant que cet utilisateur)Lorsqu'aucun utilisateur n'est connecté au système, le service se lance-t-il périodiquement ?
Pour voir cela, tu pourrais laisser ton ordinateur sans utilisateur connecté pendant une durée suffisamment longue, puis étudier les logs à posteriori.
[^] # Re: Quelques idées
Posté par gremous . Évalué à 2.
Aucun timer ne lance ce service.
Et le service est relancé même si personne n'est connecté.
Mais ça ne fait pas avancer la question de savoir comment "tracer" le lancement de services systemd.
[^] # Re: Quelques idées
Posté par Sylvain Blandel . Évalué à 0.
Le service en question est peut-être lancé parce qu'il est une dépendance d'un autre service, qui lui est lancé régulièrement par un timer ?
Proposition : arrêter tous les timers actifs pendant une période suffisamment longue, puis regarder dans les logs si le service s'est lancé durant cette période.
[^] # Re: Quelques idées
Posté par claudex . Évalué à 3.
Si c'est pour trouver ça, il vaut mieux utiliser
systemctl --reverse list-dependencies
, ce sera plus simple.« Rappelez-vous toujours que si la Gestapo avait les moyens de vous faire parler, les politiciens ont, eux, les moyens de vous faire taire. » Coluche
[^] # Re: Quelques idées
Posté par Kerro . Évalué à 4.
La question semble être de savoir comment tracer les actions de systemd. Ce n'est pas en cherchant les éléments un par un au petit bonheur la chance qu'on en censé le faire.
Pour ma part j'ai eu ce besoin il y a 2 ans, je n'ai pas trouvé comment faire.
J'avais même cherché à coups de
find
etgrep
pour repérer ce qui pouvait exécuter le programme, je n'ai pas trouvé. Je n'avais qu'1 ou 2 heures pour le faire, je suis passé à la résolution du problème sans en comprendre la source.[^] # Re: Quelques idées
Posté par GnunuX (site web personnel) . Évalué à 3.
Moi j'utilise généralement : systemd-analyze critical-chain nom_du_service.service
Je ne sais pas si ca répond à tous les besoins mais pour le moment ca a toujours répondu à mes questions.
# rescue.target
Posté par Sylvain Blandel . Évalué à 3.
Le service se lance-t-il si la cible rescue.target est la seule lancée ?
Dans un tty, faire :
systemctl isolate rescue.target
[^] # emergency.target
Posté par Sylvain Blandel . Évalué à 2.
(même question pour la cible emergency.target)
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.