Gere um diretório para soquetes unix SEM systemd

Gere um diretório para soquetes unix SEM systemd

No Ubuntu normal eu costumava criar um diretório para soquetes Unix da seguinte forma (digamos para project foo):

  1. Crie um script systemd em:/usr/lib/tmpfiles.d/foo.conf
  2. Coloque o seguinte código no script:
    /run/foo 0770 <username> <groupname>
    

Então, na próxima reinicialização, o diretório /run/fooserá criado com as permissões necessárias. A razão pela qual faço isso é porque apenas o root pode gravar em /var/runquais links -> /run, e é comum que muitos aplicativos abandonem privilégios e alterem o usuário antes de criar o soquete e, portanto, não conseguem gravar em /var/run.

Agora estou usando WSL2, com Ubuntu 20.04, e systemdnão existe. É possível passar por vários obstáculos para fazê-lo funcionar, mas eles apresentam erros.

Como criar uma pasta com as permissões desejadas que são limpas após uma reinicialização, antes que qualquer um dos aplicativos instalados (por exemplo, nginx/postgresql) tente criar seus soquetes (e, portanto, falha devido a soquetes obsoletos antes da reinicialização)?

Responder1

Em vez dos serviços init.d, você pode ter sorte escrevendo o caminho completo do script em um arquivo chamado /etc/rc.local(talvez seja necessário criá-lo) e torná-lo executável

Igual a:

#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

## Examples: 
/usr/bin/foo              # a program
/usr/local/bin/bar.sh     # a shell script
/etc/init.d/foobar start  # a service

exit 0

O exit 0é importante!

Em seguida, torne-o executável:

chmod +x /etc/rc.local

Tudo lá será iniciado comoraizna inicialização do sistema.

rc.local está realmente obsoleto, pois1983epode não funcionar mais. Quando o então novo e obsoleto sistema SysV-Init foi introduzido, ele serviu como uma solução alternativa para manter métodos ainda mais antigos de inicialização do sistema e não é mais recomendado usá-lo.

informação relacionada