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.