Em algum momento, geralmente após um acidente ou um desligamento repentino, screen
se recusa a iniciar. Comandos como
screen
screen -ls
screen -r
screen -d
resultar na seguinte saída
Não é possível criar o diretório '/ var / run / screen': permissão negada
Qual é o problema aqui? Como posso consertar isso?
fonte
Eu me deparei com isso enquanto executava uma distro baseada em Centos / RHEL 7, e ela não tem nada chamado 'limpeza de tela' em qualquer lugar em / etc.
Uma solução alternativa que encontrei foi simplesmente executar
sudo screen
e sair imediatamente dela.Depois disso, eu fui capaz de executar a tela sem privilégios especiais, de modo que parece limpar / var / run de maneira apropriada quando tiver a chance.
fonte
Eu posso corrigir esse problema executando os seguintes comandos.
fonte
TL; DR : No Debian Stretch e posterior, verifique se
systemd-tmpfiles-setup.service
foi iniciado com sucesso:Se desativado (
Loaded: ... ;disabled; ...
), convém ativá-losystemctl enable systemd-tmpfiles-setup.service
. Se você deseja usar a tela em um contêiner de docker , é necessário executar o systemd na imagem do contêiner ou executarsystemctl start systemd-tmpfiles-setup.service
ou/etc/init.d/screen-cleanup start
( como sugerido por Huey ) sempre que efetuar o logon no contêiner.Detalhes: Desde o Debian Stretch, o script de inicialização
/etc/init.d/screen-cleanup
não é executado, porque por padrão este serviço está mascarado (/lib/systemd/system/screen-cleanup.service -> /dev/null
), pelo que o systemd o ignora.Em vez disso,
systemd-tmpfiles-setup.service
cria/run/screen
na inicialização, conforme configurado em/usr/lib/tmpfiles.d/screen-cleanup.conf
:d /run/screen 0775 root utmp
fonte
systemctl enable systemd-tmpfiles-setup.service
que @Jacob sugeriu persistiu durante as reinicializações.