システムデバイスがapt-getによって実行されているか、起動中に実行されているかどうかを確認する方法は?

システムデバイスがapt-getによって実行されているか、起動中に実行されているかどうかを確認する方法は?

人々はどのようにして区別することができますか?

  • a) 起動中にデーモンが起動します。
  • b)apt-get(re)startを介してインストールまたはアップグレードしますか?

これはデーモン自体と区別できますか?

ここでのユースケースは、Type=oneshot起動時にのみ実行されるスクリプトをシステムで実行させることです。 apt-getのインストールまたはアップグレード中はそうではありません。

ベストアンサー1

編集:私は英語を知らず、あなたが基本的な初期化プロセスを確認したいと思ったので、PID 1についてだけ話していることに注意してください。希望の単位に変更してください。私はsystemdが何とかあなたのためにPIDを吐き出すと確信しています。それともそうでなければps ax |grep [commandname]そうです。稼働時間とプロセス実行時の時間差を調整する必要があるかもしれません。+3bc行にまたは何かを追加するだけです。 /編集する

私はsystemdを使用していませんので、塩を1粒ずつ使用してください。システムの初期化に関連しない方法は、関心のあるプロセスの開始時間とシステムの稼働時間を比較することです。従来、PID 1はinitプロセス用に予約されていますが、systemdがそれに従うかどうかはわかりませんps -o etimes [PID]ps 1これが実際に興味のあるプロセスであることを確認し、そうでない場合は調整してください。小数点で区切られるcat /proc/uptime |cut -d "." -f 1。区切り文字も削除されます。cutps

bcやあなたの好きな方法と比較してみてください。コマンドラインの例は次のとおりです。 echo $(cut -d "." -f 1 /proc/uptime)"-"$(ps -o etimes [PID] |tail -n 1 |tr -d ' \t')|bc起動時にプロセスが開始されると、予想される出力はゼロです。結果と一致することを確認できます。シェルスクリプトの場合は、if / thenテストで実行し、開始時間として+-3秒を許可します。少なくともしばらく。それ以外の場合、稼働時間が少しずつ異なる場合は、ゼロ以外の応答が得られ、デバッグが困難なバグが発生することがあります。

おすすめ記事