Use docker logs <yourcontainer>
no host para ler sua stdout. Adicione --follow
para manter a saída.
Eu tenho um processo em execução em uma máquina Linux da qual gostaria de acessar a saída. Está em seu próprio contêiner que estou usando docker exec
to su
em. Com ps
, posso ver:
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 18:45 ? 00:00:00 python ./manage.py runserver
Eu pensei que poderia fazer isso com
fg 1
mas isso não funcionou. Como posso capturar a saída desse processo já em execução?
Use docker logs <yourcontainer>
no host para ler sua stdout. Adicione --follow
para manter a saída.
Você pode somente fg
um trabalho (ou processo) que você executou no terminal atual e foi suspenso (por exemplo, com Ctrl + Z ) e / ou enviado para ser executado em segundo plano (por exemplo, com bg
). As chances são extremamente improváveis de que o PID 1 esteja ligado ao terminal atual; geralmente está vinculando seus fluxos de entrada, saída e erro padrão a /dev/null
. Você pode verificar com:
$ sudo ls -l /proc/1/fd/{0,1,2}
lrwx------ 1 root root 64 Mar 28 15:13 /proc/1/fd/0 -> /dev/null
lrwx------ 1 root root 64 Mar 28 15:13 /proc/1/fd/1 -> /dev/null
lrwx------ 1 root root 64 Mar 28 15:13 /proc/1/fd/2 -> /dev/null
Você só pode verificar os descritores de arquivo dos processos que possui, e é por isso que sudo
é necessário aqui. Os papéis desses descritores são os seguintes para qualquer processo:
fd/0
- entrada padrão fd/1
- saída padrão fd/2
- erro padrão