sigar取得進程信息

首先先上代碼

	SigerVO vo = new SigerVO();
	try {
		Sigar sigar = new Sigar();
		for (Long pid : sigar.getProcList()) {
			try {
				Ps ps = new Ps();
				List<String> list = ps.getInfo(sigar, pid);
				for(int i = 0; i < list.size(); i++){
					System.out.println(list.get(i));
				}
			} catch (SigarException e) {
				
			}
		}

ps.getInfo(sigar, pid)這裏面返回的就是所有的進程信息,但是這個公司在maven倉庫裏面沒有源碼以及doc。當然蛋疼的API裏面也沒有相關描述,這裏的話通過反編譯以及結合API裏面有限的說明對這個返回值裏面的含義進行說明
返回的是一個字符串類型的數組,各個下標的含義如下
[0]進程ID
[1]進程所屬用戶名,取得不到的話返回的是???並不是亂碼
[2]啓動時間
[3]進程的虛擬內存
[4]進程的常駐內存
[5]進程的共享內存(如果這一塊取不到的話只會返回一個???所以內存佔用狀態取不到數組長度會少2,所以要小心越界)
[6]進程狀態(SLEEP = ‘S’;RUN = ‘R’;STOP = ‘T’;ZOMBIE = ‘Z’;IDLE = ‘D’;)
[7]總時長
[8]進程所屬詳細信息

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章