Existe um comando semelhante ao mkfifo, mas para soquetes de domínio?
Não existe um equivalente exato de mkfifo para socket, ou seja, não há comando que apenas crie um socket "pendurado". Isso ocorre por um motivo histórico: a função do servidor bind (), que cria um nome / inode de soquete no sistema de arquivos, falha se o nome já estiver sendo usado. Em outras palavras, o servidor não pode operar em um soquete pré-existente.
Portanto, se você criou o soquete anteriormente, ele precisaria ser removido pelo servidor primeiro. Nenhum benefício. Como você vê na resposta de Gregory, você pode criar um soquete se mantiver um servidor para ele, como o netcat. Uma vez que um servidor se foi, o soquete antigo se foi. Um novo servidor possui um novo soquete e todos os clientes precisam se reconectar, apesar do nome do soquete ser idêntico.
Os programas mais recentes do netcat (nc) e similares (socat até onde eu sei) têm opções de soquete de domínio.
Senão, você pode dar uma olhada no ucspi-unix
nc
BSD.# sudo apt-get install netcat-openbsd
Você pode usar python:
Também C, veja esta resposta .
fonte
mksock() { SOCK="$1" python -c "import os, socket as s; s.socket(s.AF_UNIX).bind(os.environ['SOCK'])"; }
para uso fácil do shell:mksock /tmp/test.sock
Eu simplesmente uso
netcat
e fico ouvindo nesse caso:você deve usar o netcat-openbsd . O netcat-traditional não possui um
-U
switch que seja para o soquete do domínio Unix.fonte