Когда начался скрипт?

Я хочу,

-bash-3.2$ ps -aef | grep 29137 jeeadm 9794 1190 0 09:22 pts/2 00:00:00 grep 29137 jeeadm 29137 1 0 Sep02 ? 00:00:21 Java 

Вторая строка, пятая колонка, как и на выходе, она просто показывает дату. В любом случае, чтобы получить полную метку времени?

3 Solutions collect form web for “Когда начался скрипт?”

Для этого можно использовать поле lstart :

 # ps -aefO lstart | head PID STARTED S TTY TIME COMMAND 31379 Sat Aug 2 21:31:11 2014 S pts/3 00:00:00 zsh 31399 Sat Aug 2 21:31:11 2014 S pts/3 00:00:00 \_ vim 27313 Sat Aug 30 13:19:27 2014 S pts/4 00:00:20 zsh 27193 Sat Aug 30 13:18:11 2014 S pts/2 00:00:19 zsh 25196 Wed Sep 3 22:37:57 2014 S pts/16 00:00:00 zsh 25231 Wed Sep 3 22:38:00 2014 S pts/16 00:00:00 \_ sudo 25241 Wed Sep 3 22:38:04 2014 S pts/16 00:00:02 \_ zsh 24642 Sat Aug 30 12:50:48 2014 S pts/0 00:00:20 zsh 23366 Thu Sep 4 08:47:30 2014 S pts/18 00:00:00 zsh 

пытаться

 ps -p 11517 -o stime 

после дня (полуночи) ps показывается начальный день, а не час,

после месяца, вы получите mon и год,

через год вы получите начальный год.

Чтобы узнать временную метку, когда процесс начался, вам нужно немного вычислить. Используйте эту команду:

 echo "$(date +%s) - $(ps -o etime --no-headers -p $pid | \ awk -F'[:-]' '{print ($4+($3*60)+($2*60*60)+($1*24*60*60))}')" | bc -l 

Значение $pid должно быть идентификатором процесса.

Объяснение:

  • echo "$(date +%s) : напечатать метку времени
  • ps -o etime --no-headers -p $pid : распечатать прошедшее время процесса без заголовков
  • awk -F'[:-]' : установить разделитель awk на : и - потому что время будет напечатано в следующем формате: dd-hh:mm:ss
  • '{print ($4+($3*60)+($2*60*60)+($1*24*60*60))}' вычислить значения в секундах
  • bc -l : и вывести вывод на bc ( timestamp_now - elapsed_seconds = timespamp_at_process_start )

Для exmaple я тестировал его с процессом инициализации системы, которая работает в течение 42 дней. Выход был 1406124152 , что является 07 / 23 / 14 @ 2:02:31pm UTC .

  • как разрешить sudo fork bash вместо sh?
  • Проверка поддержки массива оболочкой
  • Как сделать временный файл в ОЗУ?
  • Как отключить переменную в командной строке?
  • Есть ли преимущество в использовании ksh над zsh?
  • Как выполнить grep на 'man unix_command'?
  • Как получить язык сообщений?
  • соответствие строки awk из 2 столбцов
  • Система Rsync'ing, исключение, похоже, не работает
  • Терминология для команды в Command $ (...)
  • Как сделать паузу в сценарии оболочки?
  • Почему цикл while останавливается после приостановки?
  • Linux и Unix - лучшая ОС в мире.