2014-09-21 1 views
1

저는 크로스 플랫폼 bash 스크립트를 작성하고 있습니다. 또한이 명령 # 1 사용해야합니다 :'/ proc'파일 시스템을 감지하는 올바른 방법은 무엇입니까?

cat /proc/$PID/cmdline 

및 procfs의 사용할 수없는 경우 (예를 들어, OS X에서),이 명령 # 2 폴백 할 필요가 :

ps -eo "pid command" | grep "^$PID" 

내 질문 아주 간단합니다 : '/ proc'파일 시스템이 존재하는 경우를 탐지하는 올바른 방법은 무엇입니까?

+0

,'= -p $ PID' 명령 -o PS 당신이 반 고정 _grep_없이 원하는 걸 줄 것이다. – pilcrow

답변

4

"proc 파일 시스템"은 거의 항상 /proc에 마운트되지만, 항상 그렇다고해서는 안됩니다 (이론적으로는 적어도). 아마도 좀더 이식성이 좋은 방법은 proc 타입의 마운트 된 파일 시스템을 열거하고 거기에서 경로를 추출하기 위해 mount -t proc을 사용하는 것입니다. 명령이 경로를 반환하지 않으면 procfs이 탑재되지 않고 대체 명령으로 돌아갈 수 있습니다. 의 라인을 따라

뭔가 : 한편

PROC_PATH=$(mount -t proc | egrep -o '/[^ ]+') 
if [ "$PROC_PATH" ]; then 
    # use procfs 
else 
    # use alternative 
fi 

ps 더 휴대해야하며, 항상 아마도 최상의 솔루션 그냥 항상 ps을 사용하는 것입니다 작동?

0

Proc 파일 시스템이/proc에 마운트되었습니다. 그것은 가치가 무엇인지에 대한

 
mount | awk '/proc/ {print $3}'  This will show all mounted proc filesystems with full path 
관련 문제