O problema é que o aplicativo está veiculando arquivos que residem no diretório inicial, que é desmontado ao desconectar.
Recebi a resposta do grupo aqui . p>
Por que após rodar o tmux em um servidor remoto via ssh, o programa funciona; mas depois de separar as sessões, ele retorna 404?
Este é um programa Go (golang), um servidor http escutando em uma porta, atrás de um proxy reverso nginx.
Primeiros dados: tudo funciona bem assim:
1 - Eu me conecto ao servidor usando ssh user@server-ip
,
2 - execute tmux
,
3 - execute este script dentro de tmux
session, por . my-script.sh
:
#!/bin/sh
go build -v
exec 3>&1 4>&2
trap 'exec 2>&4 1>&3' 0 1 2 3
exec 1>/tmp/myapi.log 2>&1
export API_COUCHDB_ADMIN='admin'
export API_COUCHDB_PASSWORD='************'
export API_COUCHDB_URL='http://172.17.0.2:5984/'
# [some other env variables ...]
./myapi
4 - desanexe a sessão do tmux por Ctrl-b e d .
Até aí tudo bem! Tudo funciona bem dentro de um navegador no endereço http://www.myapi-consumer.com
e o terminal ssh ainda está aberto; mas
5 - quando eu desanexar a sessão ssh (por Ctrl + ae d ), o programa não funciona mais corretamente e retorna 404 (é o que envia 404).
6 - Agora, quando eu reconectar ao servidor remoto usando ssh user@server-ip
, então ele funciona como esperado e eu estou testando a parte "working" em outra conexão - no meu celular com outra conexão de internet.
O que está acontecendo?
O problema é que o aplicativo está veiculando arquivos que residem no diretório inicial, que é desmontado ao desconectar.
Recebi a resposta do grupo aqui . p>
É assim que eu entendo.
Você está dizendo que está saindo da sessão ou fechando a sessão de terminal atual. Um programa em execução e você acabou de fechar seu terminal, ele não será mais executado.
Mas você está usando tmux
e é tudo tmux
para executar os programas em segundo plano.
Tente executar o programa colocando-o do fundo. Quero dizer
nohup myscript.sh &
nohup
para executar seu script, mesmo que você assine, &[and]
para colocar seu script em segundo plano.
Espero que isso ajude você.