команда mail довольно проста:
echo "More parent processes are running on the server" | mail -s "subject" user@example.org user2@example.org
И ваш скрипт может быть оптимизирован до одной строки:
[ "$(pgrep -c nagios.cfg)" -gt 2 ] && echo "More parent processes are running on the server" | mail -s "subject" user@example.org user2@example.org
Я бы попробовал следующее:
set -e
(включает обработку ошибок) echo $?
Вы должны получить число больше 0, что является кодом ошибки. В зависимости от того, какую оболочку вы используете, могут быть установлены некоторые переменные среды:
Напишите сценарий или проверьте вручную:
trap 'ERR=$?;errorhandler' listofcodes
обработчик ошибок - это сценарий, который решает, что делать при возникновении любого из перечисленных кодов.
Список может быть 1 10 14 15 (17 18 ...) или просто 1 числом, которое вы хотите поймать.
# script errorhandler
errorhandler(){
case $ERR in
1)
# here U can take action or perhaps just ignore
return
;;
*)
# action if errorcode was different from 1
;;
esac
}
Вы должны поместить строки 1-4 в / etc / profile
или аналогичный, чтобы сделать их общесистемными.
В / etc
должен быть rc.d
или init.d
, содержащий сценарии запуска и остановки, связанные с загрузкой и изменением состояния выполнения. Для вашего устройства BT должен быть файл сценария, проверьте его, но не меняйте содержимое, если ...
Если код ошибки в строке 2 равен нулю, вы должны копать глубже.
Изучите правила udev
. См. статью ArchWiki о правилах udev и этот вопрос о запуске сценария при подключении USB-устройства.
На этом сайте уже есть много вопросов, касающихся bluetooth и udev правила. См .: