AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / computer / Perguntas / 1870479
Accepted
Stewart
Stewart
Asked: 2025-01-14 21:23:36 +0800 CST2025-01-14 21:23:36 +0800 CST 2025-01-14 21:23:36 +0800 CST

Atualização automática do quiosque do Firefox se não for possível conectar

  • 772

Tenho um servidor e um quiosque. Hoje, alguém reiniciou ambos. O quiosque ficou online antes do servidor, fazendo com que o quiosque mostrasse:

Não é possível conectar

O Firefox não consegue estabelecer uma conexão com o servidor em 10.10.1.1:13668

  • O site pode estar temporariamente indisponível ou muito ocupado. Tente novamente em alguns minutos.
  • Se você não conseguir carregar nenhuma página, verifique a conexão de rede do seu computador
  • Se o seu computador ou rede estiver protegido por um firewall ou proxy, certifique-se de que o Firefox tenha permissão para acessar a web.

O kiosk é um dispositivo Debian com firefox-esrinstalado. Quando o usuário faz login automaticamente, firefox --kiosk <url>é executado como um serviço systemd no user-bus.

$ systemctl cat --user entrance-client
# /usr/lib/systemd/user/entrance-client.service
[Unit]
Description=Entrance Screen
After=graphical-session.target

[Service]
ExecStart=/usr/bin/firefox-esr --kiosk http://10.10.1.1:13668/entrance/

[Install]
WantedBy=graphical-session.target

Existe uma maneira de configurar o Firefox (de preferência por meio de argumentos de linha de comando ou arquivos de configuração implantáveis) para:

  • Quando não for possível conectar, atualize após X segundos ou
  • Quando não for possível conectar, saia com um código de saída diferente de zero (posso lidar com a lógica de reinicialização na configuração do serviço systemd).

Não sou contra uma extensão que faça isso, mas eu precisaria ser capaz de implantar a extensão automaticamente (implantações de arquivo) de forma não interativa. Então, não me importo em usar uma GUI para gerar um perfil uma vez, mas então ela deve gerar arquivos que eu possa simplesmente copiar para cada site.

firefox
  • 1 1 respostas
  • 29 Views

1 respostas

  • Voted
  1. Best Answer
    Stewart
    2025-01-17T16:12:38+08:002025-01-17T16:12:38+08:00

    Em vez de pedir para o Firefox se conectar diretamente ao servidor, podemos pedir para o Firefox se conectar a uma página de destino local, que nos redirecionará para o servidor se/quando disponível.

    $ systemctl cat --user entrance-client
    # /usr/lib/systemd/user/entrance-client.service
    [Unit]
    Description=Entrance Screen
    After=graphical-session.target
    
    [Service]
    ExecStart=/usr/bin/firefox-esr --kiosk file:///usr/share/doc/sim-entrance-client/index.html
    
    [Install]
    WantedBy=graphical-session.target
    

    Essa página poderia ter este conteúdo:

    <!DOCTYPE html>
    <html>
    <head>
        <title>Connecting...</title>
        <script>
            function checkServerStatus() {
                const server = "https://10.10.1.1:13668";
                const img = new Image();
                img.onload = () => {
                    // Redirect when the server is online
                    window.location.href = server + "/entrance/";
                };
                img.onerror = () => {
                    // Not online yet.  Try again in 3s
                    setTimeout(checkServerStatus, 3000);
                };
                // Load arbitrary small file (with timestamp to prevent caching)
                img.src = server + "/favicon.ico?_=" + new Date().getTime();
            }
    
            // Start checking server status when the page loads
            window.onload = checkServerStatus;
        </script>
    </head>
    <body>
      <h1>Connecting</h1>
      Please wait while we try to connect.
    </body>
    </html>
    

    Peguei você: CORS

    Acessar a landing page local via file://só funciona se o alvo for servido via https://. Se o servidor estiver disponível somente em http://, o Firefox falhará em obter o arquivo de teste, pois ele tenta atualizar http://as conexões para https://sempre que estiver lidando com protocolos mistos. Ele oferece esta explicação.

    Conteúdo misto: atualizando a solicitação de exibição insegura 'http://10.10.1.1:13668/favicon.ico?_=1737101047805' para usar 'https' favicon.ico

    Neste caso, altere o servidor para https://ou acesse a página de destino usando http://em vez defile://

    Podemos servir nossa landing page http://adicionando outro serviço systemd que execute o simples http.server. Então podemos mudar nosso serviço original para load http://localhost:8123em vez de file://.... Eu adicionei --bind 127.0.0.1para que ele possa ser acessado somente pelo dispositivo de loopback (em vez de por qualquer um que possa se conectar a este cliente). A escolha da porta (8123) é arbitrária. Eu escolhi um valor que não é nenhum padrão normal (8000 é http.servero padrão de ) para mantê-lo fora do caminho.

    $ systemctl cat entrance-loader.service 
    # /lib/systemd/system/entrance-loader.service
    [Unit]
    Description=Entrance Screen Local HTTP Loader
    After=network-online.target
    
    [Service]
    ExecStart=/usr/bin/python3 -m http.server 8123 --bind 127.0.0.1 --directory /usr/share/doc/sim-entrance-client
    
    [Install]
    WantedBy=multi-user.target
    
    $ systemctl --user cat entrance-client.service 
    # /usr/lib/systemd/user/entrance-client.service
    [Unit]
    Description=Entrance Screen
    After=graphical-session.target
    
    [Service]
    ExecStart=/usr/bin/firefox-esr --kiosk http://localhost:8123
    
    [Install]
    WantedBy=graphical-session.target
    

    Observações importantes: A landing page local é servida no barramento do sistema e você precisa de acesso root para habilitá-la.

    sudo systemctl enable entrance-loader.service
    

    O serviço que realmente executa o Firefox está no barramento do usuário, então ele tem acesso ao ambiente e à área de trabalho do usuário do quiosque. Não use sudopara habilitar esse.

    systemctl --user enable entrance-client.service
    
    • 1

relate perguntas

  • Use um mecanismo de pesquisa diferente no modo Privado do Firefox

  • no Firefox, por que esta página é renderizada dessa maneira (conteúdo da tag noscript sendo ignorado), ao executar NoScript ou uBlock Origin?

  • Execute um script Selenium em uma máquina remota

  • Os navegadores não obtêm páginas compactadas no sistema operacional Windows 7 de 64 bits

  • Compartilhamento de guias entre instâncias separadas do Firefox

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Como posso reduzir o consumo do processo `vmmem`?

    • 11 respostas
  • Marko Smith

    Baixar vídeo do Microsoft Stream

    • 4 respostas
  • Marko Smith

    O Google Chrome DevTools falhou ao analisar o SourceMap: chrome-extension

    • 6 respostas
  • Marko Smith

    O visualizador de fotos do Windows não pode ser executado porque não há memória suficiente?

    • 5 respostas
  • Marko Smith

    Como faço para ativar o WindowsXP agora que o suporte acabou?

    • 6 respostas
  • Marko Smith

    Área de trabalho remota congelando intermitentemente

    • 7 respostas
  • Marko Smith

    O que significa ter uma máscara de sub-rede /32?

    • 6 respostas
  • Marko Smith

    Ponteiro do mouse movendo-se nas teclas de seta pressionadas no Windows?

    • 1 respostas
  • Marko Smith

    O VirtualBox falha ao iniciar com VERR_NEM_VM_CREATE_FAILED

    • 8 respostas
  • Marko Smith

    Os aplicativos não aparecem nas configurações de privacidade da câmera e do microfone no MacBook

    • 5 respostas
  • Martin Hope
    Vickel O Firefox não permite mais colar no WhatsApp web? 2023-08-18 05:04:35 +0800 CST
  • Martin Hope
    Saaru Lindestøkke Por que os arquivos tar.xz são 15x menores ao usar a biblioteca tar do Python em comparação com o tar do macOS? 2021-03-14 09:37:48 +0800 CST
  • Martin Hope
    CiaranWelsh Como posso reduzir o consumo do processo `vmmem`? 2020-06-10 02:06:58 +0800 CST
  • Martin Hope
    Jim Pesquisa do Windows 10 não está carregando, mostrando janela em branco 2020-02-06 03:28:26 +0800 CST
  • Martin Hope
    andre_ss6 Área de trabalho remota congelando intermitentemente 2019-09-11 12:56:40 +0800 CST
  • Martin Hope
    Riley Carney Por que colocar um ponto após o URL remove as informações de login? 2019-08-06 10:59:24 +0800 CST
  • Martin Hope
    zdimension Ponteiro do mouse movendo-se nas teclas de seta pressionadas no Windows? 2019-08-04 06:39:57 +0800 CST
  • Martin Hope
    jonsca Todos os meus complementos do Firefox foram desativados repentinamente, como posso reativá-los? 2019-05-04 17:58:52 +0800 CST
  • Martin Hope
    MCK É possível criar um código QR usando texto? 2019-04-02 06:32:14 +0800 CST
  • Martin Hope
    SoniEx2 Altere o nome da ramificação padrão do git init 2019-04-01 06:16:56 +0800 CST

Hot tag

windows-10 linux windows microsoft-excel networking ubuntu worksheet-function bash command-line hard-drive

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve