Я использую Ubuntu 15.04 Server на VPS. Я пытаюсь сделать так, чтобы мой друг мог изменить файл конфигурации для игрового сервера через FTP, а затем, когда это будет сделано, выполнить скрипт оболочки, который убивает сервер, а затем перезапустить его. Спасибо!

2 ответа2

0

Запустите скрипт после загрузки

pureftpd предоставляет pure-uploadscript, который вы можете использовать для перезапуска игрового процесса:

ОПИСАНИЕ

Если Pure-FTPd скомпилирован с --with-uploadscript (по умолчанию в бинарных дистрибутивах), и если -o (или --uploadscript) передается на сервер, именованный канал называется /var/run/pure-ftpd.upload.pipe создан. Вы также заметите важный файл /var/run/pure-ftpd.upload.lock , используемый для блокировки. После успешной загрузки имя файла записывается в канал. pure-uploadscript читает этот канал для автоматического запуска любой программы или сценария для обработки вновь загруженного файла.

(из справочной страницы)

Используйте это для обнаружения изменений в конфигурационном файле игры [s] (загруженный / измененный файл передается как первый аргумент скрипту $1), и если они будут изменены, перезапустите игровой сервер.

В противном случае вы можете использовать некоторые сценарии bash и cron чтобы проверить mtime файла конфигурации и перезапустить сервер, если он изменится на что-то более новое. Или вы можете по- настоящему придумать и подключить inotify через что-то вроде inotify-tools ; но это, вероятно, излишне для этого.

0

Предполагая, что вы используете или будете использовать proftpd, вы можете использовать модуль mod_exec и выполнить команду при изменении файла.

Однако я не рекомендую этого - вы должны использовать контролируемый удаленный сеанс для перезапуска службы. Это можно сделать с пользователем с наименьшими привилегиями, а затем исправить спецификацию файла sudoers, чтобы разрешить доступ только к интересующей службе.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .