Localização, inicialização e monitoramento do soquete do servidor

1

Estou escrevendo um servidor em um desktop de desenvolvimento compartilhado que funciona como servidor.

Esta é minha primeira tentativa de escrever um servidor linux para outra pessoa em uma caixa compartilhada. Eu gostaria de estar em conformidade com os padrões unix e torná-lo o mais profissional possível.

Em qual diretório o servidor websocket deve ser colocado? Eu estava pensando em /var , mas é root , então não sei exatamente como navegar isso.

Como a execução deve ser gerenciada? Em outras palavras, deve ser feito um novo grupo que tenha permissões para executar o servidor caso ele falhe ou precise ser reiniciado? Se sim, como?

    
por Gilles 27.12.2013 / 21:36

1 resposta

1

Não sei ao certo o que você quer dizer com "websocket". Se este é um servidor web, ele escuta no TCP, e não há razão para que ele também tenha que ouvir através de um soquete unix.

Supondo que você queira usar um soquete unix, se seu servidor é iniciado por root, você pode criar um subdiretório em /var/run , dê ao seu daemon permissões para gravar lá e faça com que seu daemon crie seu soquete sob um nome previsível (por exemplo, /var/run/gracchusd/sock ). Se o seu servidor não for iniciado pelo root, você poderá criar o soquete em /tmp , com um nome contendo uma parte gerada aleatoriamente (por exemplo, /tmp/gracchusd-nyBBCxs9.sock ). De modo geral, o Padrão de Hierarquia do Sistema de Arquivos informa as principais regras sobre onde colocar arquivos (embora tenha cuidado para não data, em particular não menciona /run que agora é comum mas ainda não é universal).

Para iniciar e parar seu serviço, crie scripts de inicialização de serviço ou arquivos de descrição. Você (ou as pessoas que portam seu servidor para diferentes distribuições) precisarão criar um para cada sistema de inicialização , pois eles trabalhe de forma diferente . Alguns sistemas init vêm com seu próprio mecanismo de monitoramento ou você pode usar um daemon de monitoramento separado .

A menos que seu servidor precise ser executado como root, é uma boa prática executá-lo como um usuário e grupo dedicados. Os arquivos de configuração devem ser de propriedade de root e não serem graváveis por grupo, de forma que mesmo se o daemon for violado, o invasor não poderá alterar a configuração. Se o daemon precisar ler arquivos confidenciais, eles poderão ser de propriedade de root ou de outros usuários e poderão ser lidos pelo grupo do daemon.

    
por 28.12.2013 / 02:14