да, слишком старые и все же слишком тяжелые вещи. Я попытался с помощью предложенного выше метода «stat», но что, если у меня вчера был «прикосновение» к директории PID proc? Это означает, что мой годовалый процесс показан со вчерашней отметкой времени. Нет, не то что мне нужно :(
В более новых, это просто:
ps -o etimes -p <PID>
ELAPSED
339521
так просто, как, что. Время присутствует в секундах. Делай то, что тебе нужно. С некоторыми старыми коробками ситуация сложнее, потому что нет времени. Можно полагаться на:
ps -o etime -p <PID>
ELAPSED
76-03:26:15
который выглядит немного странным, поскольку он находится в формате дд-чч: мм: сс. Не подходит для дальнейшего расчета. Я бы предпочел это в считанные секунды, поэтому я использовал это:
ps -o etime -p <PID> --no-headers | awk -F '(:)|(-)' 'BEGIN{a[4]=1;a[3]=60;a[2]=3600;a[1]=86400;s=0};{for (i=NF;i>=1;i--) s=s+a[i]*$i}END{print s}'
339544
etimes
себя - прошедшее время в секундах - так что это машиночитаемо