Estou iniciando uma sessão de tela no meu script de shell de ponto de entrada no Docker e, em seguida, registrando a saída screen -list
em um arquivo.
#!/bin/bash
screen -S my_screen -dm bash -c 'cd project && npm run start'
screen -list > scr_list.log
Então eu me conecto ao contêiner docker e vejo o log gerado.
here is a screen on:
14.my_screen (12/18/24 17:55:29) (Detached)
1 Socket in /run/screen/S-root.
Mas quando executo manualmente screen -list
após conectar, ele retorna:
No Sockets found in /run/screen/S-root.
Usando o mesmo usuário (whoami):root
Atualmente, tenho vários serviços de tela em execução dentro do contêiner e reinicio manualmente alguns deles de vez em quando, sempre que faço alguma alteração no contêiner.
Alguma ideia, qual poderia ser o problema, por favor?
Descobri o problema:
npm
não foi encontrado.Usei
read -p
para pausar o script e descobri que elescreen
estava persistindo, mas foi encerrado.Atualizar
Para adicionar node e npm à sua
$PATH
variável, sem precisar saber o número da versão, use:Solução original
Ao executar,
which npm
encontrei o caminho para minha instalação do npm (versão) e o adicionei ao $PATH no meu script.(pasta na qual
npm
o executável está localizado)