Я пытаюсь отслеживать уведомления 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