Pular para o conteúdo principal

Questão de Sistemas Operacionais — Linux — VUNESP 2026

Sistemas OperacionaisLinux
Código
gp021209
Banca
VUNESP
Órgão
UNESP
Ano
2026
Cargo
V - - Analista de Informática I - Área de Atuação: Redes e Infraestrutura
O administrador de um servidor com sistema operacionalLinux, com base no systemd, criou um script para monitorar e registrar a utilização de memória e CPU do computador. Para executá-lo como um serviço, foi criado oarquivo /etc/systemd/system/meumonitor.servicecom o seguinte conteúdo: [Unit] Description=Monitor de utilizacao [Service] Type=simple User=centos ExecStart=/usr/bin/meumonitor.sh [Install] WantedBy=multi-user.target Em seguida, o serviço foi instalado com sucesso pormeio dos comandos a seguir: sudo systemctl start meumonitor sudo systemctl enable meumonitor Porém, quando o serviço é interrompido por uma falhaou acidentalmente, ele fica fora do ar até ser reiniciadomanualmente, ou até que o servidor seja reiniciado. Para resolver esse problema, de modo que o serviço sejareiniciado automaticamente em caso de término de suaexecução, pode-se incluir na seção [Service] as seguintes linhas:
  1. AAutorestart=true
  2. BRestartMode=on RestartCondition=always
  3. CRestart=always RestartSec=5
  4. DRestartMode=auto-restart RestartCondition=on-failure
  5. ERestartPolicy=on RestartTime=5
Revelar gabarito e comentário

GabaritoC — Restart=always RestartSec=5

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

Reinício automático de serviços no systemd

Gabarito: letra C. Para que um serviço do systemd seja reiniciado automaticamente quando seu processo termina, a diretiva correta é Restart=always, que pode ser combinada com RestartSec=5 para definir um intervalo de espera antes da nova tentativa. As demais alternativas usam nomes de diretivas que não existem no systemd (Autorestart, RestartMode, RestartCondition, RestartPolicy, RestartTime), sendo, portanto, inválidas.

O systemd é o sistema de inicialização e gerenciamento de serviços padrão nas distribuições Linux modernas. Ele substituiu o antigo SysVinit e é responsável por iniciar, parar, reiniciar e monitorar serviços (chamados de units). Cada serviço é definido por um arquivo de unidade, geralmente localizado em /etc/systemd/system/, com extensão .service. Esses arquivos são organizados em seções: [Unit] (descrição e dependências), [Service] (configuração do processo) e [Install] (como o serviço é habilitado).

A diretiva Restart controla exatamente o comportamento que a questão descreve: o que o systemd deve fazer quando o processo do serviço termina. Os valores mais comuns são:

  • no (padrão): não reinicia automaticamente.

  • on-success: reinicia apenas se o processo terminar com código de saída 0 (sucesso).

  • on-failure: reinicia se o processo terminar com código de erro, sinal ou timeout.

  • on-abnormal: reinicia se o processo terminar por sinal ou timeout (não por código de saída).

  • on-abort: reinicia se o processo terminar por um sinal não capturado.

  • always: reinicia sempre, independentemente do motivo do término.

A diretiva RestartSec define o tempo de espera (em segundos) entre o término do processo e a nova tentativa de reinício. É um complemento opcional, mas muito útil para evitar reinícios em cascata.

No cenário da questão, o administrador quer que o serviço seja reiniciado sempre que ele terminar, seja por falha ou acidentalmente. A combinação Restart=always com RestartSec=5 atende perfeitamente: o systemd tentará reiniciar o serviço 5 segundos após qualquer término. As outras alternativas apresentam diretivas que simplesmente não existem na sintaxe do systemd — são invenções da banca para testar se o candidato conhece a sintaxe real.

NÃO CAIA NESSA!

A banca cria alternativas com nomes que parecem plausíveis, mas que não são diretivas válidas do systemd. O candidato que não conhece a sintaxe exata pode ser tentado por RestartMode=on ou RestartPolicy=on, mas essas opções não existem. A única forma de acertar é memorizar as diretivas reais: Restart e RestartSec.

Alternativa A — ❌ Incorreta

Autorestart=true não é uma diretiva válida do systemd. O systemd usa Restart, não Autorestart. Essa opção parece intuitiva, mas não existe na documentação.

Alternativa B — ❌ Incorreta

RestartMode=on e RestartCondition=always também não são diretivas do systemd. Não há RestartMode nem RestartCondition na sintaxe de unidades. O systemd usa apenas Restart para definir a política de reinício.

Alternativa C — ✅ Correta ⟵ GABARITO

Restart=always é a diretiva correta para reiniciar o serviço sempre que o processo terminar, e RestartSec=5 define o intervalo de 5 segundos antes da nova tentativa. Essa é a sintaxe exata do systemd.

Alternativa D — ❌ Incorreta

RestartMode=auto-restart e RestartCondition=on-failure não existem. O systemd usa Restart=on-failure para reiniciar apenas em caso de falha, mas não há RestartMode nem RestartCondition.

Alternativa E — ❌ Incorreta

RestartPolicy=on e RestartTime=5 não são diretivas do systemd. O systemd usa Restart e RestartSec, não RestartPolicy e RestartTime.

Gabarito: letra C

Link permanente: /questoes/gp021209