システムの「既存の操作と競合する」エラーメッセージを解決する方法

システムの「既存の操作と競合する」エラーメッセージを解決する方法

私のシステムログを見ると、次のメッセージが表示されます/var/log/messages

Sep  2 15:29:15 <myhostname> systemd[1]: Requested transaction contradicts existing jobs: File exists

私の質問はこのエラーをどのように解決しますか?これが何を意味するのか、原因は何であるのか、心配する価値があるのか​​、それで問題を解決する方法を理解するためにどのような措置を講じるべきですか?

そして、「要求されたトランザクションが既存のタスクと競合しています」というメッセージはどういう意味ですか?概念的な背景が足りないようです。とにかく、このエラーメッセージは、このエラーメッセージの原因を診断し、原因を理解するための次のステップの候補を示唆していますか?

私はsystemdドキュメントを読んだがこれには役に立たないと思います。何を探すべきかに関する一般的なガイドがあれば良いでしょう。 「…既存の作業と矛盾する」情報を経験した他の人にも役立つと思います。

答え1

トラブルシューティングのためにこのエラーに関する詳細情報を取得するには、まず次のコマンドを実行します。

$ journalctl -ab

これにより、systemdログからいくつかの詳細なログがダンプされます。

また、このエラーの直前に、どのサービスに問題があるかを知らせる別のエラーがあるかもしれません。また、サービスを診断してみてください(例:Firewalld)。

$ systemctl status firewalld.service

具体的には、次の行はトランザクションをアクティブ化するためのシステムコードから得られます。

http://cgit.freedesktop.org/systemd/systemd/commit/?id=75778e21dfeee51036d24501e39ea7398fabe502

特にsystemdトランザクションの場合(man systemdで):

   systemd has a minimal transaction system: if a unit is requested to start up
   or shut down it will add it and all its dependencies to a temporary
   transaction. Then, it will verify if the transaction is consistent (i.e.
   whether the ordering of all units is cycle-free). If it is not, systemd will
   try to fix it up, and removes non-essential jobs from the transaction that
   might remove the loop. Also, systemd tries to suppress non-essential jobs in
   the transaction that would stop a running service. Finally it is checked
   whether the jobs of the transaction contradict jobs that have already been
   queued, and optionally the transaction is aborted then. If all worked out and
   the transaction is consistent and minimized in its impact it is merged with
   all already outstanding jobs and added to the run queue. Effectively this
   means that before executing a requested operation, systemd will verify that
   it makes sense, fixing it if possible, and only failing if it really cannot
   work.

したがって、これらすべてをまとめると、起動しようとしているログエントリの近くに他のエントリがありますが、すでにクリーンアップする必要があるロックファイル(おそらく古い)があるようです。

関連情報