[英]Getting running services (LINUX JAVA): how to parse service name only?
我正在嘗試獲取linux機器的運行服務。 我已經打印了它們,但是我只想獲得服務名稱。 我的代碼:
public void runningservices()
{
try {
String line;
Process p = Runtime.getRuntime().exec("ps -e");
BufferedReader input =
new BufferedReader(new InputStreamReader(p.getInputStream()));
while ((line = input.readLine()) != null) {
System.out.println(line); //<-- Parse data here.
}
input.close();
} catch (Exception err) {
err.printStackTrace();
}
}
我得到這種格式的結果:
PID TTY TIME CMD
1 ? 00:00:46 init
2 ? 00:00:00 migration/0
3 ? 00:00:00 ksoftirqd/0
4 ? 00:00:00 watchdog/0
5 ? 00:00:00 events/0
6 ? 00:00:00 khelper
7 ? 00:00:00 kthread
9 ? 00:00:00 xenwatch
10 ? 00:00:00 xenbus
12 ? 00:00:05 kblockd/0
13 ? 00:00:00 kacpid
176 ? 00:00:00 cqueue/0
180 ? 00:00:00 khubd
182 ? 00:00:00 kseriod
246 ? 00:00:00 khungtaskd
247 ? 00:00:00 pdflush
248 ? 00:00:01 pdflush
249 ? 00:00:00 kswapd0
250 ? 00:00:00 aio/0
457 ? 00:00:00 kpsmoused
485 ? 00:00:00 mpt_poll_0
486 ? 00:00:00 mpt/0
487 ? 00:00:00 scsi_eh_0
490 ? 00:00:00 ata/0
491 ? 00:00:00 ata_aux
496 ? 00:00:00 kstriped
505 ? 00:00:00 ksnapd
516 ? 00:00:12 kjournald
547 ? 00:00:00 kauditd
580 ? 00:00:03 udevd
1865 ? 00:00:00 kmpathd/0
1866 ? 00:00:00 kmpath_handlerd
1925 ? 00:00:00 kjournald
但我想要這樣:
init
migration
ksoftirqd
watchdog
events
khelper
kthread
xenwatch
xenbus
kblockd
kacpid
cqueue
khubd
kseriod
khungtaskd
pdflush
pdflush
kswapd0
aio
kpsmoused
mpt_poll_0
mpt
scsi_eh_0
ata
ata_aux
kstriped
ksnapd
kjournald
kauditd
udevd
kmpathd
kmpath_handlerd
kjournald
我將如何解析? 提前致謝。
代替解析輸出,我將使用man ps
查找ps
參數。
從那里可以看到用戶定義輸出的一部分。
To see every process with a user-defined format:
ps -eo pid,tid,class,rtprio,ni,pri,psr,pcpu,stat,wchan:14,comm
ps axo stat,euid,ruid,tty,tpgid,sess,pgrp,ppid,pid,pcpu,comm
ps -eopid,tt,user,fname,tmout,f,wchan
對於您的情況,運行此方法將是答案。
ps -eo comm
取串線的長度和從的IndexOf(長度-1)高達第一空間向后獲得的字符。
Java風格:
while ((line = input.readLine()) != null) {
String[] split = line.split(" ");
System.out.println(split[split.length-1]);
}
將命令更改為
ps -e | awk '{print $4}'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.