Я делаю инструмент, который взаимодействует с NAGIOS, куда должны быть добавлены некоторые файлы конфигурации, поэтому потребуется перезагрузка.
Мне нужно знать, как перезапустить NAGIOS с помощью кода PHP, поскольку этот инструмент написан на PHP ... когда я пытаюсь сделать это, используя:
shell_exec("service nagios restart");
изменения не происходят, но когда я делаю это вручную с помощью консоли, применяются все изменения, которые я сделал с помощью PHP-скрипта ... после 2-минутного исследования я обнаружил, что прошу Linux выполнить эту команду, пока я вошел в систему как Apache пользователь, поэтому я изменил команду на:
shell_exec('echo "mypass" | sudo -S service nagios restart');
все еще есть та же проблема ... новые файлы конфигурации не читаются, пока я не перезапущу вручную
любые предложения будут оценены :)
Лучше добавить ваш веб-сервер в sudoers, чтобы он мог перезапускать службу nagios без запроса пароля. Это будет безопаснее, чем вводить пароль в файле PHP. Для этого введите:
$ sudo visudo
Затем добавьте такую строку:
apache_user ALL=NOPASSWD: /path/to/script
Это позволит apache_user
выполнять только /path/to/script
с участием sudo
привилегии с запросом пароля.
Я предполагаю, что с разрешениями все еще что-то не так, войдите в систему как пользователь apache с su apacheusername
а затем выполните вашу команду
echo "nagiosxi" | sudo -S service nagios restart
проверить это не дает никаких ошибок. Вы уверены, что используете Nagios как службу?