2016-11-21 2 views
-1
Read=$((ps -eaf | grep "$name" | grep -v grep | awk '{print $1}')) 
Read1=$((ps -p <$Read>)) 

if [ $Read1 -ne 0 ]; then 
exit 1 

Это то, что я до сих пор получаю, хочу сначала получить pid имени $, а затем проверить, есть ли процесс, соответствующий этому pid. Если этого не произойдет, выход 1.проверить наличие программы с определенным именем процесса

Я не уверен в этом.

+1

Пожалуйста, проверьте страницы руководства 'pidof' и' pgrep' –

ответ

2

Не изобретайте велосипед, пожалуйста!

pidof <process name> 
+0

Я действительно думаю, что нам нужно сначала найти этот процесс? – faker

+0

'man pidof', 1-я строка:« _pidof - найти идентификатор процесса запущенной программы. »« –

+0

Что делать, если процесс с именем $ name фактически не существует? – faker

0

Это то, что я хотел бы использовать для этой цели:

test="$(ps aux | grep -sie "process-name" | grep -v "grep -sie")" 
if [ -z "$test" ]; then exit 1; else echo "Process found ----- $test"; fi 

Этот код чувствителен к регистру (напр .: это будет соответствовать "процесс-имя", но и "Process-NAME").

Смежные вопросы