> For the complete documentation index, see [llms.txt](https://software-telematica-com.gitbook.io/suricato-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://software-telematica-com.gitbook.io/suricato-docs/central-tecnica/instalacao-e-configuracao-de-servicos/instalacao-e-configuracao-do-suricato-face.md).

# Instalação e Configuração do Suricato Face

## Visão Geral

A **Instalação do Suricato Face como Serviço** permite que a aplicação seja executada automaticamente no Windows, garantindo inicialização controlada, monitoramento contínuo e integração adequada com o sistema operacional.

## Regra de Negócio

Para que a instalação do Suricato Face como serviço funcione corretamente, é obrigatório que:

* O serviço **suricato\_face** seja criado no Windows 64x;
* O serviço utilize a permissão de logon como **Conta do Sistema Local**;
* O Java configurado no serviço seja **Java 17 ou superior**;
* TSI Face Template **v. 1.0.0** ou superior (para o processo de extração de template);
* OpenSSL **v 3.0.2** ou superior (para o processo de extração de template).

## Componentes do Sistema

### Suricato-Face-Mgr

**Suricato-Face-Mgr** é a aplicação JAR (Java) responsável pelo monitoramento da aplicação principal **Suricato-Face.JAR** (Java).

**Suricato-Face-Mgr.JAR** é instalado como um serviço do Windows e, ao iniciar, executa uma rotina em ciclo que monitora a presença do arquivo de controle **Suricato-Face.PID**.

Se o arquivo **Suricato-Face.PID** não existir, o **Suricato-Face-Mgr** inicia uma nova instância da aplicação principal **Suricato-Face.JAR**.

A aplicação **Suricato-Face.JAR** é responsável por criar o arquivo **Suricato-Face.PID**.

Após iniciar a aplicação principal e criar o arquivo PID, o **Suricato-Face-MGR** permanece em ciclo, monitorando sua existência e sua validade de 10 minutos.

**Suricato-Face.JAR** é responsável por manter o arquivo atualizado.

Caso o arquivo **Suricato-Face.PID** não exista ou esteja vencido, o **Suricato-Face-MGR** recria uma nova instância da aplicação principal Suricato-Face.

<figure><img src="/files/9v9SVzR00kawVUTt6etc" alt=""><figcaption></figcaption></figure>

## Como instalar o Suricato Face como serviço

{% stepper %}
{% step %}
Descompacte o conteúdo do arquivo **Suricato-Face.zip** no diretório:

```
C:\Program Files\Telematica
```

<figure><img src="/files/aAfjml4POBc9UdWzAe0a" alt=""><figcaption></figcaption></figure>
{% endstep %}

{% step %}
Abra o **MS-DOS** como **administrador** e navegar até a pasta da aplicação.

<figure><img src="/files/B01lsW8zvyPprrUYAiYn" alt=""><figcaption></figcaption></figure>
{% endstep %}

{% step %}
Execute o arquivo `install.bat`

<figure><img src="/files/QFWGYuNd8qv4LlZbz284" alt=""><figcaption></figcaption></figure>
{% endstep %}

{% step %}
Após a execução do script de instalação, o serviço **suricato\_face** deve ser criado no Windows.

<figure><img src="/files/bhYeLrRdPmMWD4lINeFc" alt=""><figcaption></figcaption></figure>
{% endstep %}

{% step %}
Ajuste a permissão de Logon para a \[Conta do Sistema Local]

<figure><img src="/files/dydKDWzWAq4PqF2juCBg" alt=""><figcaption></figcaption></figure>
{% endstep %}
{% endstepper %}

## Configuração da versão do Java

Caso o ambiente possua **mais de uma versão de Java instalada**, poderá ocorrer erro de incompatibilidade, registrado no arquivo  `suricato_face-stderr.*.log`:

Exemplo de erro apresentado no log:

```
2023-08-15 10:27:55 Apache Commons Daemon procrun stderr initialized.
Exception in thread "main" VersionError: br/com/telematica/suricato/face/manager/Bootstrap 
has been compiled by a more recent version of the Java Runtime (class file version 61.0), 
this version of the Java Runtime only recognizes class file versions up to 52.0
```

#### Configurando o Java no Serviço

Nesse caso, é necessário configurar manualmente o Java utilizado pelo serviço.

Executar o comando:

```
prunmgr.exe //MS//suricato_face
```

<figure><img src="/files/R0oYLduKvpseEYJ07MIH" alt=""><figcaption></figcaption></figure>

Após executar o comando:

* Será criado um **ícone na bandeja do sistema**, ao lado do relógio;

<figure><img src="/files/BYmgjYbGXlT0HNscEs7y" alt=""><figcaption></figcaption></figure>

* Clique com o **botão direito** no ícone e selecione **Configure**;
* Acesse a aba **Java** e configure o campo **Java Virtual Machine** com o caminho do **Java 17 ou superior**;

<figure><img src="/files/7mtpu3Jqpx6SbwJubdeY" alt=""><figcaption></figcaption></figure>

* Salve as alterações;
* Reinicie o serviço **suricato\_face**.

## Glossário

* **Procrun**: Ferramenta do Apache Commons utilizada para gerenciar aplicações Java como serviços do Windows.
* **stderr**: Arquivo de log que registra erros de execução da aplicação.
* **Java Virtual Machine (JVM)**: Ambiente responsável por executar aplicações Java.

## FAQ – Perguntas Frequentes

<details>

<summary>O serviço foi criado, mas não inicia. O que verificar?</summary>

Verifique o arquivo `suricato_face-stderr.*.log` para identificar erros relacionados à versão do Java.

</details>

<details>

<summary>Qual Java deve ser configurado no serviço?</summary>

Java versão 17 ou superior.

</details>

<details>

<summary>O que significa o erro “class file version 61.0”?</summary>

Indica que a aplicação foi compilada com uma versão mais recente do Java do que a configurada no serviço.

</details>

<details>

<summary>Preciso reinstalar o serviço para trocar o Java?</summary>

Não. Basta configurar o Java correto utilizando o comando `prunmgr.exe`.

</details>

<details>

<summary>Onde configuro o Java usado pelo serviço?</summary>

Na aba **Java**, acessada pelo ícone criado na bandeja do sistema após executar o comando `prunmgr.exe //MS//suricato_face`.

</details>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://software-telematica-com.gitbook.io/suricato-docs/central-tecnica/instalacao-e-configuracao-de-servicos/instalacao-e-configuracao-do-suricato-face.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
