В Баше, я создал простой демон для выполнения команд, когда мои интернеты изменение соединения:процессов управления Создана Bash Daemon
#!/bin/bash
doService(){
while
do
checkTheInternetConnection
sleep 15
done
}
checkTheInternetConnection(){
if unchanged since last check
return
else
execute someCommand
fi
}
someCommand(){
do something
}
doService
И это работает очень хорошо, что мне нужно это делать.
Единственная проблема заключается в том, что, как часть моего «someCommand» и «checkTheInternetConnection» Я использую другие встроенные утилиты, как Арп, AWK, Grep, голову и т.д.
Однако, 99% времени , Мне просто понадобится arp.
Первый вопрос: Необходимо ли открывать другие команды? Есть ли способ убить команду, как только я уже обработал ее выход?
Другим вопрос: (Перенесено на новом посте) Я имею адское время пытаюсь написать функцию «убить все другие процессы демона». Я никогда не хочу запускать сразу несколько демонов. Какие-либо предложения? Это то, что у меня есть:
otherprocess=`ps ux | awk '/BashScriptName/ && !/awk/ {print $2}'| grep -Ev $$`
WriteLogLine "Checking for running daemons."
if [ "$otherprocess" != "" ]; then
WriteLogLine "There are other daemons running, killing all others."
VAR=`echo "$otherprocess" |grep -Ev $$| sed 's/^/kill /'`
`$VAR`
else
WriteLogLine "There are no daemons running."
fi
Возможно, лучше разделить второй вопрос на новое сообщение. – dpb