Get starttime of a process in windows / linux? [duplicate]

夙愿已清 提交于 2020-01-04 06:11:00

问题


I have the ID (pid) of this process.
Now i want to find out when the process with this id has started.

Note1: The process is not a java thread. Note2: JNA Solutions would also be welcome

From my java context i want to get this information.
How can it be done?

UPDATE: see Note2.


回答1:


On linux (I am running Ubuntu 14)

public class SO {

    public static void main(String[] args) throws Exception {
        System.out.println(getStartTime(29489));
    }   

    private static String getStartTime(int pid) throws IOException {

        String start = null;        
        Runtime runtime = Runtime.getRuntime();
        Process process = runtime.exec("ps -ewo pid,lstart");
        BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
        String line = "";       
        while ((line = reader.readLine()) != null) {
            line = line.trim();
            if (line.startsWith(pid+" ")) {
                int firstSpace = line.indexOf(" "); 
                start = line.substring(firstSpace+1);
                break;
            }
        }       
        return start;
    }
}

Output

Wed Apr 13 21:13:10 2016

Verifying through command line

xxx@xxx:~$ ps -ewo pid,lstart | grep 29489
29489 Wed Apr 13 21:13:10 2016


来源:https://stackoverflow.com/questions/36622016/get-starttime-of-a-process-in-windows-linux

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!