2
특정 프로세스 $PROC_NAME
이 실행 중인지 확인하는 작은 스크립트 (check_process.sh
)를 작성하려고합니다. 포함되어 있으면 해당 PID를 반환하고 그렇지 않으면 -1을 반환합니다.bash : commad substition의 pgrep
제 아이디어는 명령 대체에 pgrep -f <STRING>
을 사용하는 것입니다.
내가 명령 줄에서 직접이 코드를 실행하면 :
export ARG1=foo_name
export RES=$(pgrep -f ${ARG1})
if [[ $RES == "" ]]; then echo "-1" ; else echo "$RES"; fi
모든 것이 잘 진행 : PID
-1 프로세스 상태에 따라 달라집니다.
내 스크립트 check_process.sh
같은 줄이 포함 플러스 여분의 변수는 프로세스의 이름을 전달하는 :
#!/bin/bash
export ARG1=$1
export RES=$(pgrep -f ${ARG1})
if [[ $RES == "" ]]; then echo "-1" ; else echo "$RES"; fi
을하지만이 코드는 작동하지 않습니다! 과정은 현재 내가 실행하지 않는 과정을 확인할 때 내가 그렇지 않으면 뭔가를 얻을 수있는 반면 나는 이PID
의 (프로세스의 PID와 다른뭔가를 ...) 수를 실행하는 경우!
나는 당황합니다. 어떤 생각? 미리 감사드립니다.
을 당신은 아마 과정을 일치하고 처리 과정을 일치됩니다) – fedorqui
'pgrep을 -f "$의 PROC_NAME "|| echo "-1"' – Cyrus
더 작은 코드를 보내 주셔서 감사합니다. 그러나 스크립트에서 사용하면 여전히 동일한 문제가 발생합니다! – eddie