Как правильно управлять snmptrapd в скрипте bash

374
Nazar

Я пытаюсь отслеживать уведомления SNMP с помощью snmptrapd . Он запускается с использованием скрипта bash, и я добавляю '&' в конце строки snmptrapd (1), чтобы запустить его в фоновом режиме. Таким образом, я начинаю слушать порт 162, и остальная часть сценария может быть выполнена без блокировки. Проблема в том, что я не могу понять, как правильно завершить или остановить snmptrapd после того, как я закончил свой тест (так как он работает в фоновом режиме). Рабочий процесс выглядит примерно так:

1 sudo snmptrapd -f -C -c my.conf -L f my.log & 2 # do test 1 3 sudo service snmptrapd stop; 4 # analyze the .log file 5 sudo service snmptrapd start; 6 # do test 2  7 sudo service snmptrapd stop; 8 # analyze the .log file 9 ... 

но строка (3), похоже, не останавливает trapd - я вижу, что уведомления продолжают поступать. Не уверен, что строка (5) запускает « unstopped » smnptrapd, но строка (7), кажется, останавливает службу - я вижу, что уведомления больше не принимаются (с помощью wireshark). Кроме того, два файла, указанные в строке (1), имеют значок «заблокирован».

Я хотел бы иметь возможность остановить snmptrapd и внести изменения и / или создать новые файлы, а затем снова перезапустить snmptrapd для запуска следующего теста.

  1. Почему я получаю такое противоречивое поведение, когда первая команда «стоп», кажется, не имеет никакого эффекта, а вторая - нет.
  2. Есть ли лучший способ контролировать этот процесс?
  3. Как сделать файлы «разблокированными», чтобы я мог их удалить или отредактировать?
0
Я только догадываюсь, поскольку я не запускаю `snmptrapd`, но может случиться так, что при первом запуске он не запускается как служба, поэтому первый` stop` не работает; тогда как второй `stop` следует за` start`, что делает его сервисом. AFH 7 лет назад 0
@ AFH Очень вероятно. Затем, когда я добавляю еще один раунд запуска и остановки в строке (9), устройство больше не запускается. Nazar 7 лет назад 0

0 ответов на вопрос

Похожие вопросы