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

Я хочу,

-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 .

  • Переупорядочение файла на основе второго файла
  • Debian: настройка пути для узла с правами доступа, доступными глобально
  • Как создавать случайные IP-адреса
  • Как вычислить имя файла эскиза из оболочки?
  • Возможно ли отправить данные в оболочку другого псевдотерминала?
  • Почему я не могу напечатать переменную, которую я вижу на выходе env?
  • Как контролировать буферизацию труб в сценариях bash?
  • Написание сценариев, которые используют разные команды в разных оболочках
  • Чтение файла при запуске .bashrc, основанный на дате
  • Как использовать специальный символ как обычный?
  • Как я могу показать cd каталог, в который он переключается?
  • Linux и Unix - лучшая ОС в мире.