1

以前に100回スタックオーバーフローにアクセスしたような気がします。常に良い解決策を見つけましたが、今は行き詰まっています。

コンピューターが毎日どのくらい稼働しているかを監視したいと考えています。これは Ruby で書かれた Fedora マシンで実行されるプログラムの一部です。

以前は、WndProc を使用して関連する電源イベントをキャッチできる Windows で同様のことを行いました。ただし、Fedora (または Linux 一般) では、電源オンと電源オフ/サスペンド/ハイバネート/.... を検出するための適切なフックが見つかりません。

どんな提案でも大歓迎です。

ありがとう、ジェイロック

編集:私が達成したいことを明確にしていないようです。実際には、現在の稼働時間だけでなく、過去の稼働時間に関する情報も取得したいと考えています。したがって、「コンピューターは過去 14 日間で x 時間実行されている」などの情報を知る必要があります。

もう 1 つの追加事項は、たとえば、lastコマンドもジョブを実行しないことです。システムが休止状態またはサスペンド状態になるかどうかは表示されません。

4

3 に答える 3

1

lastユーザーのログインをログに記録するコマンドからの出力を解析することができます。疑似ユーザーがreboot「ログイン」した場合、システムが再起動されたことがわかります。(これは Ubuntu に有効です。おそらく Fedora は などの別の名前を使用しbootます。)

もっと直接的なインターフェースがあるかもしれません。でググってくださいruby + utmp。このutmpファイルは、通常は にあり、コマンドが報告/var/runするデータを記録します。last

于 2011-02-14T21:36:32.097 に答える
0

ルビーの詳細はわかりませんが、Linuxにはコマンドの稼働時間があります。

ルビーでは System を使う必要があると思います

だからそれは次のようなものになりますsystem 'uptime'

次に、その結​​果を解析できます

于 2011-02-14T21:32:54.533 に答える
0

uptime この回答ボックスでは、StackOverflow がそれらをコード スタイルと見なすようにバックティックを使用します。

于 2011-02-14T21:34:39.257 に答える