#!/bin/sh
ps -eo pid,ppid,pcpu,pmem,rssize,comm,thcount,start | grep -v grep | grep -v ps > process.txt
tmp=0
while read pid ppid pcpu pmem rssize comm thcount start;
do
tmp=`expr $tmp +1`
echo $tmp
echo "--" $pid
echo "Pid: $pid"
echo "Name: $comm"
echo "ThreadCnt: $thcount"
echo "SessionId: 0"
echo "ParrentId: $ppid"
echo "Cpu: $pcpu"
echo "Memory: $pmem"
echo "Responding: true"
done < process.txt
rm -f process.txt
와 같이 sh 을 작성하였습니다. ps 목록을 파일에 담고 파일에 입력된 내용만큼 루프를 돌면서 출력하는 쉘스크립트입니다.
그냥 쉘스크립트를 실행시키면 정상가동이 되지만. 쉘을 java에서 Runtime으로 실행시키면 쉘이 echo $tmp 가 256번째때 멈춰버립니다.
그렇다고 쉘실행시킨 프로세스가 죽는것도 아니고 그냥 대기를 하고있는것같은데 어디서 무엇이 잘못되었는지 모르겠습니다.
고수님들 ㅠㅠ 해결법좀 알려주세요.