
Estou executando o Ubuntu 15.04 Server em um VPS. Estou tentando fazer com que meu amigo possa alterar um arquivo de configuração de um servidor de jogo por meio de FTP e, quando terminar, execute um script de shell que mata o servidor e o reinicia. Obrigado!
Responder1
Execute um script pós-upload
pureftpd
fornecepure-uploadscript
, que você pode usar para reiniciar o processo do jogo:
DESCRIÇÃO
Se Pure-FTPd for compilado com
--with-uploadscript
(padrão em distribuições binárias) e se-o
(ou--uploadscript
) for passado para o servidor, um pipe nomeado chamado/var/run/pure-ftpd.upload.pipe
será criado. Você também notará um arquivo importante chamado/var/run/pure-ftpd.upload.lock
, usado para bloqueio. Após um upload bem-sucedido, o nome do arquivo é gravado no pipe.pure-uploadscript
lê este canal para executar automaticamente qualquer programa ou script para processar o arquivo recém-carregado.
(depágina de manual)
Use isto para detectar uma alteração nos arquivos de configuração do jogo (o arquivo carregado/modificado é passado como o primeiro argumento para o script- $1
) e, se eles forem alterados, reinicie o servidor do jogo.
Caso contrário, você pode usar alguns bash
scripts cron
para verificar o mtime
arquivo de configuração e reiniciar o servidor se ele mudar para algo mais recente. Ou você poderia conseguirrealmente chiquee conectar inotify
através de algo comoinotify-tools
; mas isso provavelmente é um exagero para isso.
Responder2
Supondo que você esteja usando ou irá usarproftpdentão você pode usar o módulomod_exece execute um comando quando o arquivo for alterado.
No entanto, eu não recomendo isso – você deve usar uma sessão remota controlada para reiniciar o serviço. Isso poderia ser feito com um usuário de menor privilégio e então com a especificação correta dosudoersarquivo para permitir acesso apenas ao serviço de interesse.