「perl」タグアーカイブ

プロセスの開始時間

psコマンドで確認するとSTIMEが開始時間なのだが、24時間以上経過すると月日しかわからなくなる。
以前これの正確な開始時間が知りたいと言われたので、ちょっと調べてみた。

これで「プロセスが起動してからの経過時間(ELAPSED)がわかるので計算したらわかりますよ」と伝えたら満足してもらえた。

せっかくなので計算までする1linerを作ってみた。試行錯誤の結果、次のようなのができあがり。

以下覚書

  • -aオプションで入力行を配列@Fにいれてくれてawkのように使える
  • 時間計算用のモジュールの使用
  • ELAPSEDはdd-hh:mm:ss なので-か:で分割して配列にいれる
  • dd-とhh:は存在しない場合もあるので、配列をreverseで入れ替えて@d(秒,分,時,日)としておく
  • 現在時間から経過時間を引いて開始時間を得る