How to check how long a process has been running? The Next CEO of Stack OverflowGet process age from command lineHow to know how long a process has been running?How long does my Java process run?Get process elapsed time in secondsRestricting CPU time of processes by executable pathCheck for process already running in webfaction?How to know how long a process has been running?Alert when running process finishesGetting output from a running processLD_PRELOAD equivalent for running process?How do I know when a process has been killedEasy way to create a meaningless, cheap, long-running process?can't capture PID from background process started in a sub-shell that's running in a heredoc passed to `sudo su`How to check the shell of a running process?How to maintain a command from terminal running?

Writing differences on a blackboard

Is there always a complete, orthogonal set of unitary matrices?

What connection does MS Office have to Netscape Navigator?

Why don't programming languages automatically manage the synchronous/asynchronous problem?

Is it possible to replace duplicates of a character with one character using tr

Is it my responsibility to learn a new technology in my own time my employer wants to implement?

0 rank tensor vs 1D vector

Rotate a column

Would be okay to drive on this tire?

Why is information "lost" when it got into a black hole?

"misplaced omit" error when >centering columns

Running a General Election and the European Elections together

RigExpert AA-35 - Interpreting The Information

Why do airplanes bank sharply to the right after air-to-air refueling?

Why is the US ranked as #45 in Press Freedom ratings, despite its extremely permissive free speech laws?

Is it convenient to ask the journal's editor for 2 additional days to complete a review?

Why isn't the Mueller report being released completely and unredacted?

Is a distribution that is normal, but highly skewed considered Gaussian?

What happened in Rome, when the western empire "fell"?

Why doesn't UK go for the same deal Japan has with EU to resolve Brexit?

If Nick Fury and Coulson already knew about aliens (Kree and Skrull) why did they wait until Thor's appearance to start making weapons?

is it ok to reduce charging current for li ion 18650 battery?

What was the first Unix version to run on a microcomputer?

Does Germany produce more waste than the US?



How to check how long a process has been running?



The Next CEO of Stack OverflowGet process age from command lineHow to know how long a process has been running?How long does my Java process run?Get process elapsed time in secondsRestricting CPU time of processes by executable pathCheck for process already running in webfaction?How to know how long a process has been running?Alert when running process finishesGetting output from a running processLD_PRELOAD equivalent for running process?How do I know when a process has been killedEasy way to create a meaningless, cheap, long-running process?can't capture PID from background process started in a sub-shell that's running in a heredoc passed to `sudo su`How to check the shell of a running process?How to maintain a command from terminal running?










226















I would like to avoid doing this by launching the process from a monitoring app.










share|improve this question




























    226















    I would like to avoid doing this by launching the process from a monitoring app.










    share|improve this question


























      226












      226








      226


      78






      I would like to avoid doing this by launching the process from a monitoring app.










      share|improve this question
















      I would like to avoid doing this by launching the process from a monitoring app.







      process






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited Aug 23 '11 at 3:14







      Tshepang

















      asked Feb 22 '11 at 21:14









      TshepangTshepang

      26.4k72187265




      26.4k72187265




















          9 Answers
          9






          active

          oldest

          votes


















          287














          On Linux with the ps from procps(-ng) (and most other systems since this is specified by POSIX):



          ps -o etime= -p "$$" 


          Where $$ is the PID of the process you want to check. This will return the elapsed time in the format [[dd-]hh:]mm:ss.



          Using -o etime tells ps that you just want the elapsed time field, and the = at the end of that suppresses the header (without, you get a line which says ELAPSED and then the time on the next line; with, you get just one line with the time).



          Or, with newer versions of the procps-ng tool suite (3.3.0 or above) on Linux or on FreeBSD 9.0 or above (and possibly others), use:



          ps -o etimes= -p "$$"


          (with an added s) to get time formatted just as seconds, which is more useful in scripts.



          On Linux, the ps program gets this from /proc/$$/stat, where one of the fields (see man proc) is process start time. This is, unfortunately, specified to be the time in jiffies (an arbitrary time counter used in the Linux kernel) since the system boot. So you have to determine the time at which the system booted (from /proc/stat), the number of jiffies per second on this system, and then do the math to get the elapsed time in a useful format.



          It turns out to be ridiculously complicated to find the value of HZ (that is, jiffies per second). From comments in sysinfo.c in the procps package, one can A) include the kernel header file and recompile if a different kernel is used, B) use the posix sysconf() function, which, sadly, uses a hard-coded value compiled into the C library, or C) ask the kernel, but there's no official interface to doing that. So, the ps code includes a series of kludges by which it determines the correct value. Wow.



          So it's convenient that ps does that all for you. :)



          As user @336_ notes, on Linux (this is not portable), you can use the stat command to look at the access, modification, or status change dates for the directory /proc/$$ (where again $$ is the process of interest). All three numbers should be the same, so



          stat -c%X /proc/$$


          will give you the time that process $$ started, in seconds since the epoch. That still isn't quite what you want, since you still need to do the math to subtract that from the current time to get elapsed time — I guess something like date +%s --date="now - $( stat -c%X /proc/$$ ) seconds" would work, but it's a bit ungainly. One possible advantage is that if you use the long-format output like -c%x instead of -c%X, you get greater resolution than whole-number seconds. But, if you need that, you should probably use process-auditing approach because the timing of running the stat command is going to interfere with accuracy.






          share|improve this answer




















          • 1





            Hi! Is etime= a typo? I can only find etime in the man pages.

            – Kent Pawar
            Jun 27 '13 at 13:01






          • 16





            @KentPawar It's not a typo. The empty = suppresses the header. Try it without, or try ps -p $$ -o etime="Silly Header Here"

            – mattdm
            Jun 27 '13 at 13:28






          • 4





            ps -p $(pgrep find) -o etime=

            – mafrosis
            Sep 11 '13 at 23:07






          • 1





            Nice. I prefer etimes myself as then it's machine readable

            – Asfand Qazi
            Jul 15 '15 at 9:35






          • 1





            @alexmurray That just calls sysconf() and therefore gives you the hard-coded value from the C library, as noted, doesn't it?

            – mattdm
            Apr 1 '16 at 1:55



















          30














          Portable:



          % ps -o stime,time $$
          STIME TIME
          Jan30 00:00:06


          i.e. that shell was started on January 30 and totaled about 6 seconds of CPU time.



          There may be more precise or more parseable but less portable ways to get this information. Check the documentation of your ps command or your proc filesystem.



          Under Linux, this information lives in /proc/$pid/stat.



          awk 'print "CPU time: " $14+$15; print "start time: " $22' /proc/$$/stat


          The CPU time is in jiffies; I don't know offhand how to find the jiffy value from the shell. The start time is relative to the boot time (found in /proc/uptime).






          share|improve this answer


















          • 3





            Finding the value of HZ (that is, jiffies per second) turns out to be ridiculously complicated! From comments in the sysinfo.c in the procps package, one can a) include the kernel header file (and recompile if a different kernel is used, b) use the posix sysconf() function, which, sadly, uses a hard-coded value compiled into the c library, or c) ask the kernel, and there's no official interface to doing that. So, the code includes a series of kludges by which it determines the correct value. Wow.

            – mattdm
            Feb 22 '11 at 21:54






          • 1





            The ps manpage states that time is "cumulative CPU time". I think what the OP was looking for is etime, or "the elapsed time since the process was started". pubs.opengroup.org/onlinepubs/000095399/utilities/ps.html

            – rinogo
            Apr 23 '14 at 20:35







          • 1





            Not so "portable" after all: "ps: stime: keyword not found" on FreeBSD. It does at least support etime, though.

            – n.st
            May 23 '16 at 11:34


















          18














          ps -eo pid,comm,cmd,start,etime | grep -i X


          X is the name of the process






          share|improve this answer




















          • 1





            should probably add a grep -v grep.

            – Brian
            Jun 30 '14 at 20:07











          • ps -o pid,comm,cmd,start,etime -p X to look at PID X.

            – codeforester
            Jul 9 '18 at 17:06


















          13














          ps takes a -o option to specify the output format, and one of the available columns is etime. According to the man page:




          etime - elapsed time since the process was started, in the form [[dd-]hh:]mm:ss.




          Thus you can run this to get the PID and elapsed time of every process:



          $ ps -eo pid,etime


          If you want the elapsed time of a particular PID (e.g. 12345), you can do something like:



          $ ps -eo pid,etime | awk '/^12345/ print $2'


          (Edit: Turns out there's a shorter syntax for the above command; see mattdm's answer)






          share|improve this answer
































            4














            Unsure why this has not yet been suggested: on Linux you can stat() the /proc/[nnn] directory for your PID.



            This behavior is explicitly designed to return the process start time, which it can do at high resolution, and which the kernel can do accurately without the jiffies hacks since the kernel can (obviously) simply check the relevant information. The access, data-modification and status change fields all return the process start time.



            Best of all, you can use stat(1) at the shell, or the appropriate binding to stat(2) from $favorite_programming_language, so you may not even need to launch an external process.



            NOTE that this does not work with /usr/compat/linux/proc on FreeBSD; the access/modification/status-change times returned are the current time, and the birth time is the UNIX epoch. Quite stupid the support isn't there if you ask me.






            share|improve this answer























            • Where in the output of stat do I see the info? I only see Access, Modify, and Change.

              – Tshepang
              Jan 8 '17 at 22:52











            • @Tshepang Note that those values are all the same, and they are the process start time. You still have to do the math, but this is definitely better than trying to figure out jiffies as noted in my answer.

              – mattdm
              Mar 2 '17 at 16:53


















            2














            If you can run time and then execute a command you will get exactly what you are looking for. You cannot do this against an already-running command.



            [0] % time sleep 20



            sleep 20 0.00s user 0.00s system 0% cpu 20.014 total






            share|improve this answer























            • Do you know how can I do it on a running process monitoring until it ends?

              – lrkwz
              Nov 21 '12 at 22:56



















            1














            $ ps -eo lstart get start time



            $ ps -eo etime get duration/elapsed time



            $ ps -eo pid,lstart,etime | grep 61819
            PID STARTED ELAPSED
            61819 Mon Sep 17 03:01:35 2018 07:52:15


            61819 is the process id.






            share|improve this answer






























              0














              you can get the start time of the process by looking at the stat of the stat file produced by proc, format it using date and subtract it from the current time:



              echo $(( $(date +%s) - $(date -d "$(stat /proc/13494/stat | grep Modify | sed 's/Modify: //')" +%s) ))



              where 13494 is your process' pid






              share|improve this answer






























                0














                Time elapsed in seconds: expr $(date +"%s") - $(stat -c%X /proc/<PID HERE>)






                share|improve this answer























                • This seems to me to be a very slight variation of one that mattdm mentioned already: date +%s --date="now - $( stat -c%X /proc/$$

                  – Jeff Schaller
                  2 days ago











                • That one didn't work for me on my very minimal Alpine docker instance so I wrote this one

                  – Shard
                  2 days ago











                Your Answer








                StackExchange.ready(function()
                var channelOptions =
                tags: "".split(" "),
                id: "106"
                ;
                initTagRenderer("".split(" "), "".split(" "), channelOptions);

                StackExchange.using("externalEditor", function()
                // Have to fire editor after snippets, if snippets enabled
                if (StackExchange.settings.snippets.snippetsEnabled)
                StackExchange.using("snippets", function()
                createEditor();
                );

                else
                createEditor();

                );

                function createEditor()
                StackExchange.prepareEditor(
                heartbeatType: 'answer',
                autoActivateHeartbeat: false,
                convertImagesToLinks: false,
                noModals: true,
                showLowRepImageUploadWarning: true,
                reputationToPostImages: null,
                bindNavPrevention: true,
                postfix: "",
                imageUploader:
                brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
                contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
                allowUrls: true
                ,
                onDemand: true,
                discardSelector: ".discard-answer"
                ,immediatelyShowMarkdownHelp:true
                );



                );













                draft saved

                draft discarded


















                StackExchange.ready(
                function ()
                StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f7870%2fhow-to-check-how-long-a-process-has-been-running%23new-answer', 'question_page');

                );

                Post as a guest















                Required, but never shown

























                9 Answers
                9






                active

                oldest

                votes








                9 Answers
                9






                active

                oldest

                votes









                active

                oldest

                votes






                active

                oldest

                votes









                287














                On Linux with the ps from procps(-ng) (and most other systems since this is specified by POSIX):



                ps -o etime= -p "$$" 


                Where $$ is the PID of the process you want to check. This will return the elapsed time in the format [[dd-]hh:]mm:ss.



                Using -o etime tells ps that you just want the elapsed time field, and the = at the end of that suppresses the header (without, you get a line which says ELAPSED and then the time on the next line; with, you get just one line with the time).



                Or, with newer versions of the procps-ng tool suite (3.3.0 or above) on Linux or on FreeBSD 9.0 or above (and possibly others), use:



                ps -o etimes= -p "$$"


                (with an added s) to get time formatted just as seconds, which is more useful in scripts.



                On Linux, the ps program gets this from /proc/$$/stat, where one of the fields (see man proc) is process start time. This is, unfortunately, specified to be the time in jiffies (an arbitrary time counter used in the Linux kernel) since the system boot. So you have to determine the time at which the system booted (from /proc/stat), the number of jiffies per second on this system, and then do the math to get the elapsed time in a useful format.



                It turns out to be ridiculously complicated to find the value of HZ (that is, jiffies per second). From comments in sysinfo.c in the procps package, one can A) include the kernel header file and recompile if a different kernel is used, B) use the posix sysconf() function, which, sadly, uses a hard-coded value compiled into the C library, or C) ask the kernel, but there's no official interface to doing that. So, the ps code includes a series of kludges by which it determines the correct value. Wow.



                So it's convenient that ps does that all for you. :)



                As user @336_ notes, on Linux (this is not portable), you can use the stat command to look at the access, modification, or status change dates for the directory /proc/$$ (where again $$ is the process of interest). All three numbers should be the same, so



                stat -c%X /proc/$$


                will give you the time that process $$ started, in seconds since the epoch. That still isn't quite what you want, since you still need to do the math to subtract that from the current time to get elapsed time — I guess something like date +%s --date="now - $( stat -c%X /proc/$$ ) seconds" would work, but it's a bit ungainly. One possible advantage is that if you use the long-format output like -c%x instead of -c%X, you get greater resolution than whole-number seconds. But, if you need that, you should probably use process-auditing approach because the timing of running the stat command is going to interfere with accuracy.






                share|improve this answer




















                • 1





                  Hi! Is etime= a typo? I can only find etime in the man pages.

                  – Kent Pawar
                  Jun 27 '13 at 13:01






                • 16





                  @KentPawar It's not a typo. The empty = suppresses the header. Try it without, or try ps -p $$ -o etime="Silly Header Here"

                  – mattdm
                  Jun 27 '13 at 13:28






                • 4





                  ps -p $(pgrep find) -o etime=

                  – mafrosis
                  Sep 11 '13 at 23:07






                • 1





                  Nice. I prefer etimes myself as then it's machine readable

                  – Asfand Qazi
                  Jul 15 '15 at 9:35






                • 1





                  @alexmurray That just calls sysconf() and therefore gives you the hard-coded value from the C library, as noted, doesn't it?

                  – mattdm
                  Apr 1 '16 at 1:55
















                287














                On Linux with the ps from procps(-ng) (and most other systems since this is specified by POSIX):



                ps -o etime= -p "$$" 


                Where $$ is the PID of the process you want to check. This will return the elapsed time in the format [[dd-]hh:]mm:ss.



                Using -o etime tells ps that you just want the elapsed time field, and the = at the end of that suppresses the header (without, you get a line which says ELAPSED and then the time on the next line; with, you get just one line with the time).



                Or, with newer versions of the procps-ng tool suite (3.3.0 or above) on Linux or on FreeBSD 9.0 or above (and possibly others), use:



                ps -o etimes= -p "$$"


                (with an added s) to get time formatted just as seconds, which is more useful in scripts.



                On Linux, the ps program gets this from /proc/$$/stat, where one of the fields (see man proc) is process start time. This is, unfortunately, specified to be the time in jiffies (an arbitrary time counter used in the Linux kernel) since the system boot. So you have to determine the time at which the system booted (from /proc/stat), the number of jiffies per second on this system, and then do the math to get the elapsed time in a useful format.



                It turns out to be ridiculously complicated to find the value of HZ (that is, jiffies per second). From comments in sysinfo.c in the procps package, one can A) include the kernel header file and recompile if a different kernel is used, B) use the posix sysconf() function, which, sadly, uses a hard-coded value compiled into the C library, or C) ask the kernel, but there's no official interface to doing that. So, the ps code includes a series of kludges by which it determines the correct value. Wow.



                So it's convenient that ps does that all for you. :)



                As user @336_ notes, on Linux (this is not portable), you can use the stat command to look at the access, modification, or status change dates for the directory /proc/$$ (where again $$ is the process of interest). All three numbers should be the same, so



                stat -c%X /proc/$$


                will give you the time that process $$ started, in seconds since the epoch. That still isn't quite what you want, since you still need to do the math to subtract that from the current time to get elapsed time — I guess something like date +%s --date="now - $( stat -c%X /proc/$$ ) seconds" would work, but it's a bit ungainly. One possible advantage is that if you use the long-format output like -c%x instead of -c%X, you get greater resolution than whole-number seconds. But, if you need that, you should probably use process-auditing approach because the timing of running the stat command is going to interfere with accuracy.






                share|improve this answer




















                • 1





                  Hi! Is etime= a typo? I can only find etime in the man pages.

                  – Kent Pawar
                  Jun 27 '13 at 13:01






                • 16





                  @KentPawar It's not a typo. The empty = suppresses the header. Try it without, or try ps -p $$ -o etime="Silly Header Here"

                  – mattdm
                  Jun 27 '13 at 13:28






                • 4





                  ps -p $(pgrep find) -o etime=

                  – mafrosis
                  Sep 11 '13 at 23:07






                • 1





                  Nice. I prefer etimes myself as then it's machine readable

                  – Asfand Qazi
                  Jul 15 '15 at 9:35






                • 1





                  @alexmurray That just calls sysconf() and therefore gives you the hard-coded value from the C library, as noted, doesn't it?

                  – mattdm
                  Apr 1 '16 at 1:55














                287












                287








                287







                On Linux with the ps from procps(-ng) (and most other systems since this is specified by POSIX):



                ps -o etime= -p "$$" 


                Where $$ is the PID of the process you want to check. This will return the elapsed time in the format [[dd-]hh:]mm:ss.



                Using -o etime tells ps that you just want the elapsed time field, and the = at the end of that suppresses the header (without, you get a line which says ELAPSED and then the time on the next line; with, you get just one line with the time).



                Or, with newer versions of the procps-ng tool suite (3.3.0 or above) on Linux or on FreeBSD 9.0 or above (and possibly others), use:



                ps -o etimes= -p "$$"


                (with an added s) to get time formatted just as seconds, which is more useful in scripts.



                On Linux, the ps program gets this from /proc/$$/stat, where one of the fields (see man proc) is process start time. This is, unfortunately, specified to be the time in jiffies (an arbitrary time counter used in the Linux kernel) since the system boot. So you have to determine the time at which the system booted (from /proc/stat), the number of jiffies per second on this system, and then do the math to get the elapsed time in a useful format.



                It turns out to be ridiculously complicated to find the value of HZ (that is, jiffies per second). From comments in sysinfo.c in the procps package, one can A) include the kernel header file and recompile if a different kernel is used, B) use the posix sysconf() function, which, sadly, uses a hard-coded value compiled into the C library, or C) ask the kernel, but there's no official interface to doing that. So, the ps code includes a series of kludges by which it determines the correct value. Wow.



                So it's convenient that ps does that all for you. :)



                As user @336_ notes, on Linux (this is not portable), you can use the stat command to look at the access, modification, or status change dates for the directory /proc/$$ (where again $$ is the process of interest). All three numbers should be the same, so



                stat -c%X /proc/$$


                will give you the time that process $$ started, in seconds since the epoch. That still isn't quite what you want, since you still need to do the math to subtract that from the current time to get elapsed time — I guess something like date +%s --date="now - $( stat -c%X /proc/$$ ) seconds" would work, but it's a bit ungainly. One possible advantage is that if you use the long-format output like -c%x instead of -c%X, you get greater resolution than whole-number seconds. But, if you need that, you should probably use process-auditing approach because the timing of running the stat command is going to interfere with accuracy.






                share|improve this answer















                On Linux with the ps from procps(-ng) (and most other systems since this is specified by POSIX):



                ps -o etime= -p "$$" 


                Where $$ is the PID of the process you want to check. This will return the elapsed time in the format [[dd-]hh:]mm:ss.



                Using -o etime tells ps that you just want the elapsed time field, and the = at the end of that suppresses the header (without, you get a line which says ELAPSED and then the time on the next line; with, you get just one line with the time).



                Or, with newer versions of the procps-ng tool suite (3.3.0 or above) on Linux or on FreeBSD 9.0 or above (and possibly others), use:



                ps -o etimes= -p "$$"


                (with an added s) to get time formatted just as seconds, which is more useful in scripts.



                On Linux, the ps program gets this from /proc/$$/stat, where one of the fields (see man proc) is process start time. This is, unfortunately, specified to be the time in jiffies (an arbitrary time counter used in the Linux kernel) since the system boot. So you have to determine the time at which the system booted (from /proc/stat), the number of jiffies per second on this system, and then do the math to get the elapsed time in a useful format.



                It turns out to be ridiculously complicated to find the value of HZ (that is, jiffies per second). From comments in sysinfo.c in the procps package, one can A) include the kernel header file and recompile if a different kernel is used, B) use the posix sysconf() function, which, sadly, uses a hard-coded value compiled into the C library, or C) ask the kernel, but there's no official interface to doing that. So, the ps code includes a series of kludges by which it determines the correct value. Wow.



                So it's convenient that ps does that all for you. :)



                As user @336_ notes, on Linux (this is not portable), you can use the stat command to look at the access, modification, or status change dates for the directory /proc/$$ (where again $$ is the process of interest). All three numbers should be the same, so



                stat -c%X /proc/$$


                will give you the time that process $$ started, in seconds since the epoch. That still isn't quite what you want, since you still need to do the math to subtract that from the current time to get elapsed time — I guess something like date +%s --date="now - $( stat -c%X /proc/$$ ) seconds" would work, but it's a bit ungainly. One possible advantage is that if you use the long-format output like -c%x instead of -c%X, you get greater resolution than whole-number seconds. But, if you need that, you should probably use process-auditing approach because the timing of running the stat command is going to interfere with accuracy.







                share|improve this answer














                share|improve this answer



                share|improve this answer








                edited Jun 20 '17 at 14:03

























                answered Feb 22 '11 at 21:20









                mattdmmattdm

                29k1372117




                29k1372117







                • 1





                  Hi! Is etime= a typo? I can only find etime in the man pages.

                  – Kent Pawar
                  Jun 27 '13 at 13:01






                • 16





                  @KentPawar It's not a typo. The empty = suppresses the header. Try it without, or try ps -p $$ -o etime="Silly Header Here"

                  – mattdm
                  Jun 27 '13 at 13:28






                • 4





                  ps -p $(pgrep find) -o etime=

                  – mafrosis
                  Sep 11 '13 at 23:07






                • 1





                  Nice. I prefer etimes myself as then it's machine readable

                  – Asfand Qazi
                  Jul 15 '15 at 9:35






                • 1





                  @alexmurray That just calls sysconf() and therefore gives you the hard-coded value from the C library, as noted, doesn't it?

                  – mattdm
                  Apr 1 '16 at 1:55













                • 1





                  Hi! Is etime= a typo? I can only find etime in the man pages.

                  – Kent Pawar
                  Jun 27 '13 at 13:01






                • 16





                  @KentPawar It's not a typo. The empty = suppresses the header. Try it without, or try ps -p $$ -o etime="Silly Header Here"

                  – mattdm
                  Jun 27 '13 at 13:28






                • 4





                  ps -p $(pgrep find) -o etime=

                  – mafrosis
                  Sep 11 '13 at 23:07






                • 1





                  Nice. I prefer etimes myself as then it's machine readable

                  – Asfand Qazi
                  Jul 15 '15 at 9:35






                • 1





                  @alexmurray That just calls sysconf() and therefore gives you the hard-coded value from the C library, as noted, doesn't it?

                  – mattdm
                  Apr 1 '16 at 1:55








                1




                1





                Hi! Is etime= a typo? I can only find etime in the man pages.

                – Kent Pawar
                Jun 27 '13 at 13:01





                Hi! Is etime= a typo? I can only find etime in the man pages.

                – Kent Pawar
                Jun 27 '13 at 13:01




                16




                16





                @KentPawar It's not a typo. The empty = suppresses the header. Try it without, or try ps -p $$ -o etime="Silly Header Here"

                – mattdm
                Jun 27 '13 at 13:28





                @KentPawar It's not a typo. The empty = suppresses the header. Try it without, or try ps -p $$ -o etime="Silly Header Here"

                – mattdm
                Jun 27 '13 at 13:28




                4




                4





                ps -p $(pgrep find) -o etime=

                – mafrosis
                Sep 11 '13 at 23:07





                ps -p $(pgrep find) -o etime=

                – mafrosis
                Sep 11 '13 at 23:07




                1




                1





                Nice. I prefer etimes myself as then it's machine readable

                – Asfand Qazi
                Jul 15 '15 at 9:35





                Nice. I prefer etimes myself as then it's machine readable

                – Asfand Qazi
                Jul 15 '15 at 9:35




                1




                1





                @alexmurray That just calls sysconf() and therefore gives you the hard-coded value from the C library, as noted, doesn't it?

                – mattdm
                Apr 1 '16 at 1:55






                @alexmurray That just calls sysconf() and therefore gives you the hard-coded value from the C library, as noted, doesn't it?

                – mattdm
                Apr 1 '16 at 1:55














                30














                Portable:



                % ps -o stime,time $$
                STIME TIME
                Jan30 00:00:06


                i.e. that shell was started on January 30 and totaled about 6 seconds of CPU time.



                There may be more precise or more parseable but less portable ways to get this information. Check the documentation of your ps command or your proc filesystem.



                Under Linux, this information lives in /proc/$pid/stat.



                awk 'print "CPU time: " $14+$15; print "start time: " $22' /proc/$$/stat


                The CPU time is in jiffies; I don't know offhand how to find the jiffy value from the shell. The start time is relative to the boot time (found in /proc/uptime).






                share|improve this answer


















                • 3





                  Finding the value of HZ (that is, jiffies per second) turns out to be ridiculously complicated! From comments in the sysinfo.c in the procps package, one can a) include the kernel header file (and recompile if a different kernel is used, b) use the posix sysconf() function, which, sadly, uses a hard-coded value compiled into the c library, or c) ask the kernel, and there's no official interface to doing that. So, the code includes a series of kludges by which it determines the correct value. Wow.

                  – mattdm
                  Feb 22 '11 at 21:54






                • 1





                  The ps manpage states that time is "cumulative CPU time". I think what the OP was looking for is etime, or "the elapsed time since the process was started". pubs.opengroup.org/onlinepubs/000095399/utilities/ps.html

                  – rinogo
                  Apr 23 '14 at 20:35







                • 1





                  Not so "portable" after all: "ps: stime: keyword not found" on FreeBSD. It does at least support etime, though.

                  – n.st
                  May 23 '16 at 11:34















                30














                Portable:



                % ps -o stime,time $$
                STIME TIME
                Jan30 00:00:06


                i.e. that shell was started on January 30 and totaled about 6 seconds of CPU time.



                There may be more precise or more parseable but less portable ways to get this information. Check the documentation of your ps command or your proc filesystem.



                Under Linux, this information lives in /proc/$pid/stat.



                awk 'print "CPU time: " $14+$15; print "start time: " $22' /proc/$$/stat


                The CPU time is in jiffies; I don't know offhand how to find the jiffy value from the shell. The start time is relative to the boot time (found in /proc/uptime).






                share|improve this answer


















                • 3





                  Finding the value of HZ (that is, jiffies per second) turns out to be ridiculously complicated! From comments in the sysinfo.c in the procps package, one can a) include the kernel header file (and recompile if a different kernel is used, b) use the posix sysconf() function, which, sadly, uses a hard-coded value compiled into the c library, or c) ask the kernel, and there's no official interface to doing that. So, the code includes a series of kludges by which it determines the correct value. Wow.

                  – mattdm
                  Feb 22 '11 at 21:54






                • 1





                  The ps manpage states that time is "cumulative CPU time". I think what the OP was looking for is etime, or "the elapsed time since the process was started". pubs.opengroup.org/onlinepubs/000095399/utilities/ps.html

                  – rinogo
                  Apr 23 '14 at 20:35







                • 1





                  Not so "portable" after all: "ps: stime: keyword not found" on FreeBSD. It does at least support etime, though.

                  – n.st
                  May 23 '16 at 11:34













                30












                30








                30







                Portable:



                % ps -o stime,time $$
                STIME TIME
                Jan30 00:00:06


                i.e. that shell was started on January 30 and totaled about 6 seconds of CPU time.



                There may be more precise or more parseable but less portable ways to get this information. Check the documentation of your ps command or your proc filesystem.



                Under Linux, this information lives in /proc/$pid/stat.



                awk 'print "CPU time: " $14+$15; print "start time: " $22' /proc/$$/stat


                The CPU time is in jiffies; I don't know offhand how to find the jiffy value from the shell. The start time is relative to the boot time (found in /proc/uptime).






                share|improve this answer













                Portable:



                % ps -o stime,time $$
                STIME TIME
                Jan30 00:00:06


                i.e. that shell was started on January 30 and totaled about 6 seconds of CPU time.



                There may be more precise or more parseable but less portable ways to get this information. Check the documentation of your ps command or your proc filesystem.



                Under Linux, this information lives in /proc/$pid/stat.



                awk 'print "CPU time: " $14+$15; print "start time: " $22' /proc/$$/stat


                The CPU time is in jiffies; I don't know offhand how to find the jiffy value from the shell. The start time is relative to the boot time (found in /proc/uptime).







                share|improve this answer












                share|improve this answer



                share|improve this answer










                answered Feb 22 '11 at 21:31









                GillesGilles

                545k12811071622




                545k12811071622







                • 3





                  Finding the value of HZ (that is, jiffies per second) turns out to be ridiculously complicated! From comments in the sysinfo.c in the procps package, one can a) include the kernel header file (and recompile if a different kernel is used, b) use the posix sysconf() function, which, sadly, uses a hard-coded value compiled into the c library, or c) ask the kernel, and there's no official interface to doing that. So, the code includes a series of kludges by which it determines the correct value. Wow.

                  – mattdm
                  Feb 22 '11 at 21:54






                • 1





                  The ps manpage states that time is "cumulative CPU time". I think what the OP was looking for is etime, or "the elapsed time since the process was started". pubs.opengroup.org/onlinepubs/000095399/utilities/ps.html

                  – rinogo
                  Apr 23 '14 at 20:35







                • 1





                  Not so "portable" after all: "ps: stime: keyword not found" on FreeBSD. It does at least support etime, though.

                  – n.st
                  May 23 '16 at 11:34












                • 3





                  Finding the value of HZ (that is, jiffies per second) turns out to be ridiculously complicated! From comments in the sysinfo.c in the procps package, one can a) include the kernel header file (and recompile if a different kernel is used, b) use the posix sysconf() function, which, sadly, uses a hard-coded value compiled into the c library, or c) ask the kernel, and there's no official interface to doing that. So, the code includes a series of kludges by which it determines the correct value. Wow.

                  – mattdm
                  Feb 22 '11 at 21:54






                • 1





                  The ps manpage states that time is "cumulative CPU time". I think what the OP was looking for is etime, or "the elapsed time since the process was started". pubs.opengroup.org/onlinepubs/000095399/utilities/ps.html

                  – rinogo
                  Apr 23 '14 at 20:35







                • 1





                  Not so "portable" after all: "ps: stime: keyword not found" on FreeBSD. It does at least support etime, though.

                  – n.st
                  May 23 '16 at 11:34







                3




                3





                Finding the value of HZ (that is, jiffies per second) turns out to be ridiculously complicated! From comments in the sysinfo.c in the procps package, one can a) include the kernel header file (and recompile if a different kernel is used, b) use the posix sysconf() function, which, sadly, uses a hard-coded value compiled into the c library, or c) ask the kernel, and there's no official interface to doing that. So, the code includes a series of kludges by which it determines the correct value. Wow.

                – mattdm
                Feb 22 '11 at 21:54





                Finding the value of HZ (that is, jiffies per second) turns out to be ridiculously complicated! From comments in the sysinfo.c in the procps package, one can a) include the kernel header file (and recompile if a different kernel is used, b) use the posix sysconf() function, which, sadly, uses a hard-coded value compiled into the c library, or c) ask the kernel, and there's no official interface to doing that. So, the code includes a series of kludges by which it determines the correct value. Wow.

                – mattdm
                Feb 22 '11 at 21:54




                1




                1





                The ps manpage states that time is "cumulative CPU time". I think what the OP was looking for is etime, or "the elapsed time since the process was started". pubs.opengroup.org/onlinepubs/000095399/utilities/ps.html

                – rinogo
                Apr 23 '14 at 20:35






                The ps manpage states that time is "cumulative CPU time". I think what the OP was looking for is etime, or "the elapsed time since the process was started". pubs.opengroup.org/onlinepubs/000095399/utilities/ps.html

                – rinogo
                Apr 23 '14 at 20:35





                1




                1





                Not so "portable" after all: "ps: stime: keyword not found" on FreeBSD. It does at least support etime, though.

                – n.st
                May 23 '16 at 11:34





                Not so "portable" after all: "ps: stime: keyword not found" on FreeBSD. It does at least support etime, though.

                – n.st
                May 23 '16 at 11:34











                18














                ps -eo pid,comm,cmd,start,etime | grep -i X


                X is the name of the process






                share|improve this answer




















                • 1





                  should probably add a grep -v grep.

                  – Brian
                  Jun 30 '14 at 20:07











                • ps -o pid,comm,cmd,start,etime -p X to look at PID X.

                  – codeforester
                  Jul 9 '18 at 17:06















                18














                ps -eo pid,comm,cmd,start,etime | grep -i X


                X is the name of the process






                share|improve this answer




















                • 1





                  should probably add a grep -v grep.

                  – Brian
                  Jun 30 '14 at 20:07











                • ps -o pid,comm,cmd,start,etime -p X to look at PID X.

                  – codeforester
                  Jul 9 '18 at 17:06













                18












                18








                18







                ps -eo pid,comm,cmd,start,etime | grep -i X


                X is the name of the process






                share|improve this answer















                ps -eo pid,comm,cmd,start,etime | grep -i X


                X is the name of the process







                share|improve this answer














                share|improve this answer



                share|improve this answer








                edited Aug 28 '13 at 8:30









                Anthon

                61.4k17107170




                61.4k17107170










                answered Aug 28 '13 at 8:11









                mezimezi

                7041917




                7041917







                • 1





                  should probably add a grep -v grep.

                  – Brian
                  Jun 30 '14 at 20:07











                • ps -o pid,comm,cmd,start,etime -p X to look at PID X.

                  – codeforester
                  Jul 9 '18 at 17:06












                • 1





                  should probably add a grep -v grep.

                  – Brian
                  Jun 30 '14 at 20:07











                • ps -o pid,comm,cmd,start,etime -p X to look at PID X.

                  – codeforester
                  Jul 9 '18 at 17:06







                1




                1





                should probably add a grep -v grep.

                – Brian
                Jun 30 '14 at 20:07





                should probably add a grep -v grep.

                – Brian
                Jun 30 '14 at 20:07













                ps -o pid,comm,cmd,start,etime -p X to look at PID X.

                – codeforester
                Jul 9 '18 at 17:06





                ps -o pid,comm,cmd,start,etime -p X to look at PID X.

                – codeforester
                Jul 9 '18 at 17:06











                13














                ps takes a -o option to specify the output format, and one of the available columns is etime. According to the man page:




                etime - elapsed time since the process was started, in the form [[dd-]hh:]mm:ss.




                Thus you can run this to get the PID and elapsed time of every process:



                $ ps -eo pid,etime


                If you want the elapsed time of a particular PID (e.g. 12345), you can do something like:



                $ ps -eo pid,etime | awk '/^12345/ print $2'


                (Edit: Turns out there's a shorter syntax for the above command; see mattdm's answer)






                share|improve this answer





























                  13














                  ps takes a -o option to specify the output format, and one of the available columns is etime. According to the man page:




                  etime - elapsed time since the process was started, in the form [[dd-]hh:]mm:ss.




                  Thus you can run this to get the PID and elapsed time of every process:



                  $ ps -eo pid,etime


                  If you want the elapsed time of a particular PID (e.g. 12345), you can do something like:



                  $ ps -eo pid,etime | awk '/^12345/ print $2'


                  (Edit: Turns out there's a shorter syntax for the above command; see mattdm's answer)






                  share|improve this answer



























                    13












                    13








                    13







                    ps takes a -o option to specify the output format, and one of the available columns is etime. According to the man page:




                    etime - elapsed time since the process was started, in the form [[dd-]hh:]mm:ss.




                    Thus you can run this to get the PID and elapsed time of every process:



                    $ ps -eo pid,etime


                    If you want the elapsed time of a particular PID (e.g. 12345), you can do something like:



                    $ ps -eo pid,etime | awk '/^12345/ print $2'


                    (Edit: Turns out there's a shorter syntax for the above command; see mattdm's answer)






                    share|improve this answer















                    ps takes a -o option to specify the output format, and one of the available columns is etime. According to the man page:




                    etime - elapsed time since the process was started, in the form [[dd-]hh:]mm:ss.




                    Thus you can run this to get the PID and elapsed time of every process:



                    $ ps -eo pid,etime


                    If you want the elapsed time of a particular PID (e.g. 12345), you can do something like:



                    $ ps -eo pid,etime | awk '/^12345/ print $2'


                    (Edit: Turns out there's a shorter syntax for the above command; see mattdm's answer)







                    share|improve this answer














                    share|improve this answer



                    share|improve this answer








                    edited Apr 13 '17 at 12:36









                    Community

                    1




                    1










                    answered Feb 22 '11 at 21:20









                    Michael MrozekMichael Mrozek

                    62.1k29193213




                    62.1k29193213





















                        4














                        Unsure why this has not yet been suggested: on Linux you can stat() the /proc/[nnn] directory for your PID.



                        This behavior is explicitly designed to return the process start time, which it can do at high resolution, and which the kernel can do accurately without the jiffies hacks since the kernel can (obviously) simply check the relevant information. The access, data-modification and status change fields all return the process start time.



                        Best of all, you can use stat(1) at the shell, or the appropriate binding to stat(2) from $favorite_programming_language, so you may not even need to launch an external process.



                        NOTE that this does not work with /usr/compat/linux/proc on FreeBSD; the access/modification/status-change times returned are the current time, and the birth time is the UNIX epoch. Quite stupid the support isn't there if you ask me.






                        share|improve this answer























                        • Where in the output of stat do I see the info? I only see Access, Modify, and Change.

                          – Tshepang
                          Jan 8 '17 at 22:52











                        • @Tshepang Note that those values are all the same, and they are the process start time. You still have to do the math, but this is definitely better than trying to figure out jiffies as noted in my answer.

                          – mattdm
                          Mar 2 '17 at 16:53















                        4














                        Unsure why this has not yet been suggested: on Linux you can stat() the /proc/[nnn] directory for your PID.



                        This behavior is explicitly designed to return the process start time, which it can do at high resolution, and which the kernel can do accurately without the jiffies hacks since the kernel can (obviously) simply check the relevant information. The access, data-modification and status change fields all return the process start time.



                        Best of all, you can use stat(1) at the shell, or the appropriate binding to stat(2) from $favorite_programming_language, so you may not even need to launch an external process.



                        NOTE that this does not work with /usr/compat/linux/proc on FreeBSD; the access/modification/status-change times returned are the current time, and the birth time is the UNIX epoch. Quite stupid the support isn't there if you ask me.






                        share|improve this answer























                        • Where in the output of stat do I see the info? I only see Access, Modify, and Change.

                          – Tshepang
                          Jan 8 '17 at 22:52











                        • @Tshepang Note that those values are all the same, and they are the process start time. You still have to do the math, but this is definitely better than trying to figure out jiffies as noted in my answer.

                          – mattdm
                          Mar 2 '17 at 16:53













                        4












                        4








                        4







                        Unsure why this has not yet been suggested: on Linux you can stat() the /proc/[nnn] directory for your PID.



                        This behavior is explicitly designed to return the process start time, which it can do at high resolution, and which the kernel can do accurately without the jiffies hacks since the kernel can (obviously) simply check the relevant information. The access, data-modification and status change fields all return the process start time.



                        Best of all, you can use stat(1) at the shell, or the appropriate binding to stat(2) from $favorite_programming_language, so you may not even need to launch an external process.



                        NOTE that this does not work with /usr/compat/linux/proc on FreeBSD; the access/modification/status-change times returned are the current time, and the birth time is the UNIX epoch. Quite stupid the support isn't there if you ask me.






                        share|improve this answer













                        Unsure why this has not yet been suggested: on Linux you can stat() the /proc/[nnn] directory for your PID.



                        This behavior is explicitly designed to return the process start time, which it can do at high resolution, and which the kernel can do accurately without the jiffies hacks since the kernel can (obviously) simply check the relevant information. The access, data-modification and status change fields all return the process start time.



                        Best of all, you can use stat(1) at the shell, or the appropriate binding to stat(2) from $favorite_programming_language, so you may not even need to launch an external process.



                        NOTE that this does not work with /usr/compat/linux/proc on FreeBSD; the access/modification/status-change times returned are the current time, and the birth time is the UNIX epoch. Quite stupid the support isn't there if you ask me.







                        share|improve this answer












                        share|improve this answer



                        share|improve this answer










                        answered Jan 7 '17 at 23:57









                        i336_i336_

                        361317




                        361317












                        • Where in the output of stat do I see the info? I only see Access, Modify, and Change.

                          – Tshepang
                          Jan 8 '17 at 22:52











                        • @Tshepang Note that those values are all the same, and they are the process start time. You still have to do the math, but this is definitely better than trying to figure out jiffies as noted in my answer.

                          – mattdm
                          Mar 2 '17 at 16:53

















                        • Where in the output of stat do I see the info? I only see Access, Modify, and Change.

                          – Tshepang
                          Jan 8 '17 at 22:52











                        • @Tshepang Note that those values are all the same, and they are the process start time. You still have to do the math, but this is definitely better than trying to figure out jiffies as noted in my answer.

                          – mattdm
                          Mar 2 '17 at 16:53
















                        Where in the output of stat do I see the info? I only see Access, Modify, and Change.

                        – Tshepang
                        Jan 8 '17 at 22:52





                        Where in the output of stat do I see the info? I only see Access, Modify, and Change.

                        – Tshepang
                        Jan 8 '17 at 22:52













                        @Tshepang Note that those values are all the same, and they are the process start time. You still have to do the math, but this is definitely better than trying to figure out jiffies as noted in my answer.

                        – mattdm
                        Mar 2 '17 at 16:53





                        @Tshepang Note that those values are all the same, and they are the process start time. You still have to do the math, but this is definitely better than trying to figure out jiffies as noted in my answer.

                        – mattdm
                        Mar 2 '17 at 16:53











                        2














                        If you can run time and then execute a command you will get exactly what you are looking for. You cannot do this against an already-running command.



                        [0] % time sleep 20



                        sleep 20 0.00s user 0.00s system 0% cpu 20.014 total






                        share|improve this answer























                        • Do you know how can I do it on a running process monitoring until it ends?

                          – lrkwz
                          Nov 21 '12 at 22:56
















                        2














                        If you can run time and then execute a command you will get exactly what you are looking for. You cannot do this against an already-running command.



                        [0] % time sleep 20



                        sleep 20 0.00s user 0.00s system 0% cpu 20.014 total






                        share|improve this answer























                        • Do you know how can I do it on a running process monitoring until it ends?

                          – lrkwz
                          Nov 21 '12 at 22:56














                        2












                        2








                        2







                        If you can run time and then execute a command you will get exactly what you are looking for. You cannot do this against an already-running command.



                        [0] % time sleep 20



                        sleep 20 0.00s user 0.00s system 0% cpu 20.014 total






                        share|improve this answer













                        If you can run time and then execute a command you will get exactly what you are looking for. You cannot do this against an already-running command.



                        [0] % time sleep 20



                        sleep 20 0.00s user 0.00s system 0% cpu 20.014 total







                        share|improve this answer












                        share|improve this answer



                        share|improve this answer










                        answered Feb 25 '11 at 17:56









                        slashdotslashdot

                        61053




                        61053












                        • Do you know how can I do it on a running process monitoring until it ends?

                          – lrkwz
                          Nov 21 '12 at 22:56


















                        • Do you know how can I do it on a running process monitoring until it ends?

                          – lrkwz
                          Nov 21 '12 at 22:56

















                        Do you know how can I do it on a running process monitoring until it ends?

                        – lrkwz
                        Nov 21 '12 at 22:56






                        Do you know how can I do it on a running process monitoring until it ends?

                        – lrkwz
                        Nov 21 '12 at 22:56












                        1














                        $ ps -eo lstart get start time



                        $ ps -eo etime get duration/elapsed time



                        $ ps -eo pid,lstart,etime | grep 61819
                        PID STARTED ELAPSED
                        61819 Mon Sep 17 03:01:35 2018 07:52:15


                        61819 is the process id.






                        share|improve this answer



























                          1














                          $ ps -eo lstart get start time



                          $ ps -eo etime get duration/elapsed time



                          $ ps -eo pid,lstart,etime | grep 61819
                          PID STARTED ELAPSED
                          61819 Mon Sep 17 03:01:35 2018 07:52:15


                          61819 is the process id.






                          share|improve this answer

























                            1












                            1








                            1







                            $ ps -eo lstart get start time



                            $ ps -eo etime get duration/elapsed time



                            $ ps -eo pid,lstart,etime | grep 61819
                            PID STARTED ELAPSED
                            61819 Mon Sep 17 03:01:35 2018 07:52:15


                            61819 is the process id.






                            share|improve this answer













                            $ ps -eo lstart get start time



                            $ ps -eo etime get duration/elapsed time



                            $ ps -eo pid,lstart,etime | grep 61819
                            PID STARTED ELAPSED
                            61819 Mon Sep 17 03:01:35 2018 07:52:15


                            61819 is the process id.







                            share|improve this answer












                            share|improve this answer



                            share|improve this answer










                            answered Sep 17 '18 at 4:57









                            Terry wangTerry wang

                            112




                            112





















                                0














                                you can get the start time of the process by looking at the stat of the stat file produced by proc, format it using date and subtract it from the current time:



                                echo $(( $(date +%s) - $(date -d "$(stat /proc/13494/stat | grep Modify | sed 's/Modify: //')" +%s) ))



                                where 13494 is your process' pid






                                share|improve this answer



























                                  0














                                  you can get the start time of the process by looking at the stat of the stat file produced by proc, format it using date and subtract it from the current time:



                                  echo $(( $(date +%s) - $(date -d "$(stat /proc/13494/stat | grep Modify | sed 's/Modify: //')" +%s) ))



                                  where 13494 is your process' pid






                                  share|improve this answer

























                                    0












                                    0








                                    0







                                    you can get the start time of the process by looking at the stat of the stat file produced by proc, format it using date and subtract it from the current time:



                                    echo $(( $(date +%s) - $(date -d "$(stat /proc/13494/stat | grep Modify | sed 's/Modify: //')" +%s) ))



                                    where 13494 is your process' pid






                                    share|improve this answer













                                    you can get the start time of the process by looking at the stat of the stat file produced by proc, format it using date and subtract it from the current time:



                                    echo $(( $(date +%s) - $(date -d "$(stat /proc/13494/stat | grep Modify | sed 's/Modify: //')" +%s) ))



                                    where 13494 is your process' pid







                                    share|improve this answer












                                    share|improve this answer



                                    share|improve this answer










                                    answered Aug 10 '18 at 10:12









                                    bobbinsbobbins

                                    1




                                    1





















                                        0














                                        Time elapsed in seconds: expr $(date +"%s") - $(stat -c%X /proc/<PID HERE>)






                                        share|improve this answer























                                        • This seems to me to be a very slight variation of one that mattdm mentioned already: date +%s --date="now - $( stat -c%X /proc/$$

                                          – Jeff Schaller
                                          2 days ago











                                        • That one didn't work for me on my very minimal Alpine docker instance so I wrote this one

                                          – Shard
                                          2 days ago















                                        0














                                        Time elapsed in seconds: expr $(date +"%s") - $(stat -c%X /proc/<PID HERE>)






                                        share|improve this answer























                                        • This seems to me to be a very slight variation of one that mattdm mentioned already: date +%s --date="now - $( stat -c%X /proc/$$

                                          – Jeff Schaller
                                          2 days ago











                                        • That one didn't work for me on my very minimal Alpine docker instance so I wrote this one

                                          – Shard
                                          2 days ago













                                        0












                                        0








                                        0







                                        Time elapsed in seconds: expr $(date +"%s") - $(stat -c%X /proc/<PID HERE>)






                                        share|improve this answer













                                        Time elapsed in seconds: expr $(date +"%s") - $(stat -c%X /proc/<PID HERE>)







                                        share|improve this answer












                                        share|improve this answer



                                        share|improve this answer










                                        answered 2 days ago









                                        ShardShard

                                        1137




                                        1137












                                        • This seems to me to be a very slight variation of one that mattdm mentioned already: date +%s --date="now - $( stat -c%X /proc/$$

                                          – Jeff Schaller
                                          2 days ago











                                        • That one didn't work for me on my very minimal Alpine docker instance so I wrote this one

                                          – Shard
                                          2 days ago

















                                        • This seems to me to be a very slight variation of one that mattdm mentioned already: date +%s --date="now - $( stat -c%X /proc/$$

                                          – Jeff Schaller
                                          2 days ago











                                        • That one didn't work for me on my very minimal Alpine docker instance so I wrote this one

                                          – Shard
                                          2 days ago
















                                        This seems to me to be a very slight variation of one that mattdm mentioned already: date +%s --date="now - $( stat -c%X /proc/$$

                                        – Jeff Schaller
                                        2 days ago





                                        This seems to me to be a very slight variation of one that mattdm mentioned already: date +%s --date="now - $( stat -c%X /proc/$$

                                        – Jeff Schaller
                                        2 days ago













                                        That one didn't work for me on my very minimal Alpine docker instance so I wrote this one

                                        – Shard
                                        2 days ago





                                        That one didn't work for me on my very minimal Alpine docker instance so I wrote this one

                                        – Shard
                                        2 days ago

















                                        draft saved

                                        draft discarded
















































                                        Thanks for contributing an answer to Unix & Linux Stack Exchange!


                                        • Please be sure to answer the question. Provide details and share your research!

                                        But avoid


                                        • Asking for help, clarification, or responding to other answers.

                                        • Making statements based on opinion; back them up with references or personal experience.

                                        To learn more, see our tips on writing great answers.




                                        draft saved


                                        draft discarded














                                        StackExchange.ready(
                                        function ()
                                        StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f7870%2fhow-to-check-how-long-a-process-has-been-running%23new-answer', 'question_page');

                                        );

                                        Post as a guest















                                        Required, but never shown





















































                                        Required, but never shown














                                        Required, but never shown












                                        Required, but never shown







                                        Required, but never shown

































                                        Required, but never shown














                                        Required, but never shown












                                        Required, but never shown







                                        Required, but never shown







                                        Popular posts from this blog

                                        Àrd-bhaile Cathair chruinne/Baile mòr cruinne | Artagailean ceangailte | Clàr-taice na seòladaireachd

                                        대한민국 목차 국명 지리 역사 정치 국방 경제 사회 문화 국제 순위 관련 항목 각주 외부 링크 둘러보기 메뉴북위 37° 34′ 08″ 동경 126° 58′ 36″ / 북위 37.568889° 동경 126.976667°  / 37.568889; 126.976667ehThe Korean Repository문단을 편집문단을 편집추가해Clarkson PLC 사Report for Selected Countries and Subjects-Korea“Human Development Index and its components: P.198”“http://www.law.go.kr/%EB%B2%95%EB%A0%B9/%EB%8C%80%ED%95%9C%EB%AF%BC%EA%B5%AD%EA%B5%AD%EA%B8%B0%EB%B2%95”"한국은 국제법상 한반도 유일 합법정부 아니다" - 오마이뉴스 모바일Report for Selected Countries and Subjects: South Korea격동의 역사와 함께한 조선일보 90년 : 조선일보 인수해 혁신시킨 신석우, 임시정부 때는 '대한민국' 국호(國號) 정해《우리가 몰랐던 우리 역사: 나라 이름의 비밀을 찾아가는 역사 여행》“남북 공식호칭 ‘남한’‘북한’으로 쓴다”“Corea 대 Korea, 누가 이긴 거야?”국내기후자료 - 한국[김대중 前 대통령 서거] 과감한 구조개혁 'DJ노믹스'로 최단기간 환란극복 :: 네이버 뉴스“이라크 "韓-쿠르드 유전개발 MOU 승인 안해"(종합)”“해외 우리국민 추방사례 43%가 일본”차기전차 K2'흑표'의 세계 최고 전력 분석, 쿠키뉴스 엄기영, 2007-03-02두산인프라, 헬기잡는 장갑차 'K21'...내년부터 공급, 고뉴스 이대준, 2008-10-30과거 내용 찾기mk 뉴스 - 구매력 기준으로 보면 한국 1인당 소득 3만弗과거 내용 찾기"The N-11: More Than an Acronym"Archived조선일보 최우석, 2008-11-01Global 500 2008: Countries - South Korea“몇년째 '시한폭탄'... 가계부채, 올해는 터질까”가구당 부채 5000만원 처음 넘어서“‘빚’으로 내몰리는 사회.. 위기의 가계대출”“[경제365] 공공부문 부채 급증…800조 육박”“"소득 양극화 다소 완화...불평등은 여전"”“공정사회·공생발전 한참 멀었네”iSuppli,08年2QのDRAMシェア・ランキングを発表(08/8/11)South Korea dominates shipbuilding industry | Stock Market News & Stocks to Watch from StraightStocks한국 자동차 생산, 3년 연속 세계 5위자동차수출 '현대-삼성 웃고 기아-대우-쌍용은 울고' 과거 내용 찾기동반성장위 창립 1주년 맞아Archived"중기적합 3개업종 합의 무시한 채 선정"李대통령, 사업 무분별 확장 소상공인 생계 위협 질타삼성-LG, 서민업종인 빵·분식사업 잇따라 철수상생은 뒷전…SSM ‘몸집 불리기’ 혈안Archived“경부고속도에 '아시안하이웨이' 표지판”'철의 실크로드' 앞서 '말(言)의 실크로드'부터, 프레시안 정창현, 2008-10-01“'서울 지하철은 안전한가?'”“서울시 “올해 안에 모든 지하철역 스크린도어 설치””“부산지하철 1,2호선 승강장 안전펜스 설치 완료”“전교조, 정부 노조 통계서 처음 빠져”“[Weekly BIZ] 도요타 '제로 이사회'가 리콜 사태 불러들였다”“S Korea slams high tuition costs”““정치가 여론 양극화 부채질… 합리주의 절실””“〈"`촛불집회'는 민주주의의 질적 변화 상징"〉”““촛불집회가 민주주의 왜곡 초래””“국민 65%, "한국 노사관계 대립적"”“한국 국가경쟁력 27위‥노사관계 '꼴찌'”“제대로 형성되지 않은 대한민국 이념지형”“[신년기획-갈등의 시대] 갈등지수 OECD 4위…사회적 손실 GDP 27% 무려 300조”“2012 총선-대선의 키워드는 '국민과 소통'”“한국 삶의 질 27위, 2000년과 2008년 연속 하위권 머물러”“[해피 코리아] 행복점수 68점…해외 평가선 '낙제점'”“한국 어린이·청소년 행복지수 3년 연속 OECD ‘꼴찌’”“한국 이혼율 OECD중 8위”“[통계청] 한국 이혼율 OECD 4위”“오피니언 [이렇게 생각한다] `부부의 날` 에 돌아본 이혼율 1위 한국”“Suicide Rates by Country, Global Health Observatory Data Repository.”“1. 또 다른 차별”“오피니언 [편집자에게] '왕따'와 '패거리 정치' 심리는 닮은꼴”“[미래한국리포트] 무한경쟁에 빠진 대한민국”“대학생 98% "외모가 경쟁력이라는 말 동의"”“특급호텔 웨딩·200만원대 유모차… "남보다 더…" 호화病, 고질병 됐다”“[스트레스 공화국] ① 경쟁사회, 스트레스 쌓인다”““매일 30여명 자살 한국, 의사보다 무속인에…””“"자살 부르는 '우울증', 환자 중 85% 치료 안 받아"”“정신병원을 가다”“대한민국도 ‘묻지마 범죄’,안전지대 아니다”“유엔 "학생 '성적 지향'에 따른 차별 금지하라"”“유엔아동권리위원회 보고서 및 번역본 원문”“고졸 성공스토리 담은 '제빵왕 김탁구' 드라마 나온다”“‘빛 좋은 개살구’ 고졸 취업…실습 대신 착취”원본 문서“정신건강, 사회적 편견부터 고쳐드립니다”‘소통’과 ‘행복’에 목 마른 사회가 잠들어 있던 ‘심리학’ 깨웠다“[포토] 사유리-곽금주 교수의 유쾌한 심리상담”“"올해 한국인 평균 영화관람횟수 세계 1위"(종합)”“[게임연중기획] 게임은 문화다-여가활동 1순위 게임”“영화속 ‘영어 지상주의’ …“왠지 씁쓸한데””“2월 `신문 부수 인증기관` 지정..방송법 후속작업”“무료신문 성장동력 ‘차별성’과 ‘갈등해소’”대한민국 국회 법률지식정보시스템"Pew Research Center's Religion & Public Life Project: South Korea"“amp;vwcd=MT_ZTITLE&path=인구·가구%20>%20인구총조사%20>%20인구부문%20>%20 총조사인구(2005)%20>%20전수부문&oper_YN=Y&item=&keyword=종교별%20인구& amp;lang_mode=kor&list_id= 2005년 통계청 인구 총조사”원본 문서“한국인이 좋아하는 취미와 운동 (2004-2009)”“한국인이 좋아하는 취미와 운동 (2004-2014)”Archived“한국, `부분적 언론자유국' 강등〈프리덤하우스〉”“국경없는기자회 "한국, 인터넷감시 대상국"”“한국, 조선산업 1위 유지(S. Korea Stays Top Shipbuilding Nation) RZD-Partner Portal”원본 문서“한국, 4년 만에 ‘선박건조 1위’”“옛 마산시,인터넷속도 세계 1위”“"한국 초고속 인터넷망 세계1위"”“인터넷·휴대폰 요금, 외국보다 훨씬 비싸”“한국 관세행정 6년 연속 세계 '1위'”“한국 교통사고 사망자 수 OECD 회원국 중 2위”“결핵 후진국' 한국, 환자가 급증한 이유는”“수술은 신중해야… 자칫하면 생명 위협”대한민국분류대한민국의 지도대한민국 정부대표 다국어포털대한민국 전자정부대한민국 국회한국방송공사about korea and information korea브리태니커 백과사전(한국편)론리플래닛의 정보(한국편)CIA의 세계 정보(한국편)마리암 부디아 (Mariam Budia),『한국: 하늘이 내린 한 폭의 그림』, 서울: 트랜스라틴 19호 (2012년 3월)대한민국ehehehehehehehehehehehehehehWorldCat132441370n791268020000 0001 2308 81034078029-6026373548cb11863345f(데이터)00573706ge128495

                                        Cannot Extend partition with GParted The 2019 Stack Overflow Developer Survey Results Are In Announcing the arrival of Valued Associate #679: Cesar Manara Planned maintenance scheduled April 17/18, 2019 at 00:00UTC (8:00pm US/Eastern) 2019 Community Moderator Election ResultsCan't increase partition size with GParted?GParted doesn't recognize the unallocated space after my current partitionWhat is the best way to add unallocated space located before to Ubuntu 12.04 partition with GParted live?I can't figure out how to extend my Arch home partition into free spaceGparted Linux Mint 18.1 issueTrying to extend but swap partition is showing as Unknown in Gparted, shows proper from fdiskRearrange partitions in gparted to extend a partitionUnable to extend partition even though unallocated space is next to it using GPartedAllocate free space to root partitiongparted: how to merge unallocated space with a partition